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

Rob*_*oll 37 objective-c

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

Ben*_*ove 58

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

@property (strong) NSObject *object DEPRECATED_ATTRIBUTE;
Run Code Online (Sandbox Code Playgroud)

  • @fatuhoku使用`DEPRECATED_MSG_ATTRIBUTE(message)`. (7认同)

Bry*_*hen 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)
Run Code Online (Sandbox Code Playgroud)

你可以使用这些宏

这是一个例子 UITableViewCell.h

@property(nonatomic,copy)   NSString *text NS_DEPRECATED_IOS(2_0, 3_0);                        // default is nil
Run Code Online (Sandbox Code Playgroud)

  • 如果它不依赖于iOS版本,请使用`AvailabilityMacros.h`中的`DEPRECATED_ATTRIBUTE` (3认同)

aks*_*188 5

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

例子:

@property (nonatomic) NSString *someProperty DEPRECATED_MSG_ATTRIBUTE("Use anotherProperty instead.");
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明