41

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

4

4 回答 4

65

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

@property (strong) NSObject *object DEPRECATED_ATTRIBUTE;
于 2013-03-19T05:11:40.777 回答
15

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
于 2013-03-19T05:00:37.713 回答
6

您还可以使用 DEPRECATED_MSG_ATTRIBUTE("Use anotherProperty instead.") 并提供有意义的消息,提示用户使用什么来代替已弃用的属性。Xcode 会在使用该属性时显示警告。

例子:

@property (nonatomic) NSString *someProperty DEPRECATED_MSG_ATTRIBUTE("Use anotherProperty instead.");

在此处输入图像描述

于 2018-02-07T22:51:39.543 回答
1

您可以在 .pch 的下方键入这样的宏,以便为所有应用程序设置全局

    #define DEPRECATED_ATTRIBUTE     __attribute__((deprecated))

将方法标记为以下示例

    -(void) exmapleMethodName DEPRECATED_ATTRIBUTE{
          // code
    }
于 2014-09-29T06:26:14.627 回答