iphone - 如何在 Objective-C 2.0 中将方法标记为已弃用?

我是一个开发相当大的 iPad 应用程序的团队的一员,因此我们创建了许多不同的类。问题是一些方法现在已经过时了,我不想简单地删除它们,因为我知道整个系统的某些部分使用这些方法......但是应该使用更好(更新)的变体取而代之的是(一些旧的实际上调用了新的,但是整个类接口(interface)变得杂乱无章)。

有没有一种方法可以将某些方法标记为已弃用(如 Java 中的 @deprecated 和 .NET 中的 [Obsolete])。

我看到 Apple 使用了 Availability.h 并带有诸如

之类的标签
__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_3_0);

...这是唯一的方法吗(+ App Store 这样做安全吗?)还是有其他方法可以在 Xcode 中标记警告?

最佳答案

弃用语法

提供语法以将方法标记为已弃用:

@interface SomeClass
-method __attribute__((deprecated));
@end

或:

#include <AvailabilityMacros.h>
@interface SomeClass
-method DEPRECATED_ATTRIBUTE;  // or some other deployment-target-specific macro
@end

https://stackoverflow.com/questions/3908715/

相关文章:

ios - UIView 隐藏/显示动画

iphone - 从实例中获取类的名称

ios - 如何在 UITableView 中设置分隔符的全宽

objective-c - "FOUNDATION_EXPORT"与 "extern"

ios - 较小时 UIScrollView 的中心内容

ios - 如何设置一个简单的委托(delegate)来在两个 View Controller 之间

ios - 无法同时满足约束,将尝试通过打破约束来恢复

ios - iPhone SDK : what is the difference between

objective-c - Swift References 中的 _ 下划线代表什么?

objective-c - NSInvocation 傻瓜?