将属性标记为在Objective C中弃用

时间:2013-03-19 04:45:34

标签: objective-c

如何将Objective C中的@property标记为已弃用?

4 个答案:

答案 0 :(得分:57)

除非你真的想根据iOS版本弃用,我怀疑你不想这样做,你可以使用DEPRECATED_ATTRIBUTE

@property (strong) NSObject *object DEPRECATED_ATTRIBUTE;

答案 1 :(得分:13)

来自NSObjCRuntime.h

#define NS_AVAILABLE(_mac, _ios)
#define NS_AVAILABLE_MAC(_mac)
#define NS_AVAILABLE_IOS(_ios)
#define NS_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep)
#define NS_DEPRECATED_MAC(_macIntro, _macDep)
#define NS_DEPRECATED_IOS(_iosIntro, _iosDep)

您可以使用这些宏

这是UITableViewCell.h

中的一个示例
@property(nonatomic,copy)   NSString *text NS_DEPRECATED_IOS(2_0, 3_0);                        // default is nil

答案 2 :(得分:3)

您还可以使用DEPRECATED_MSG_ATTRIBUTE(“使用anotherProperty代替。”)并提供一条有意义的消息,提示用户使用什么代替不推荐使用的属性。 当使用该属性时,Xcode将显示警告。

示例:

if (line.toLowerCase().startsWith("a"))

enter image description here

答案 3 :(得分:1)

您可以在.pch中输入如下所示的宏,以便为所有应用程序设置全局

    #define DEPRECATED_ATTRIBUTE     __attribute__((deprecated))

将方法标记为以下示例

    -(void) exmapleMethodName DEPRECATED_ATTRIBUTE{
          // code
    }