看来,它对协议方法不起作用.如果我们将它们标记为不推荐,并在项目编译的地方使用它们,而不需要预期的弃用警告.
这是苹果LLVM 3.1的缺陷,还是我做错了?
解决方法 虽然这里的答案提供了一些非常好的信息,但它们已经过时了.从 Xcode 5.0和LLVM 5.0开始,它被认为是Objective-C协议方法的弃用警告.在实现该方法时,Xcode 5标记它:Warning: Implementing deprecated method
以下是用于为执行不推荐使用的协议方法产生废弃警告的步骤:
>使用__deprecated标记协议方法已弃用.从新的SDK 7.0文档:
__deprecated causes
the compiler to produce a warning when encountering code using the deprecated functionality.__deprecated_msg()
does the same,and compilers that support it will print a message along with the deprecation warning. This may require turning on such warning with the-Wdeprecated
flag.__deprecated_enum_msg()
should be used on enums,and compilers that support it will print the deprecation warning.
#define __deprecated __attribute__((deprecated))
要弃用您的方法,请执行以下 *** 作:
- (voID)aDeprecatedProtocolMethod __deprecated;
这一点应该足以让Xcode显示一个弃用警告.但是,您应该遵循接下来的几个步骤(知道Xcode可以非常有趣),以确保显示警告.
>使用废弃警告标签添加文档注释.请参阅下面的代码示例来了解如何:
/** Describe the method here - what does it do,how does it work,etc. Very brIEf. @deprecated This delegate method is deprecated starting in version 2.0,please use otherMethodnameHere:withAnExtraParameter: instead. */- (voID)aDeprecatedProtocolMethod __deprecated;
>清理项目(⌘⇧K),然后构建项目(⌘B) – 只是因为有时候Xcode可能很时髦.
我不是100%肯定这个功能的引入时间(可能与SDK 7.0和10.9,或Xcode 5.0 / 5.0.1或LLVM 5.0) – 但它仍然工作.
总结以上是内存溢出为你收集整理的__attribute__((不推荐使用))在Objective-C协议方法上不起作用?全部内容,希望文章能够帮你解决__attribute__((不推荐使用))在Objective-C协议方法上不起作用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)