2013-03-19 77 views

回答

48

一个例子,除非你真的想基于IOS版本弃用,我怀疑你不想做的事,可以用DEPRECATED_ATTRIBUTE

@property (strong) NSObject *object DEPRECATED_ATTRIBUTE; 
+0

有没有什么建议可以添加一条消息,告诉的方式用户应该使用他们应该使用的属性? – fatuhoku 2014-05-01 09:51:37

+5

@fatuhoku使用'DEPRECATED_MSG_ATTRIBUTE(message)'。 – ThomasW 2014-07-03 05:40:40

+0

非常好。谢谢。 – fatuhoku 2014-07-08 15:01:32

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 
+3

使用''从AvailabilityMacros.h' DEPRECATED_ATTRIBUTE'如果它不依赖于iOS版本 – Sebastian 2013-03-19 05:10:27

1

您可以键入宏这样一个低于在.PCH为标志中的所有应用程序

#define DEPRECATED_ATTRIBUTE  __attribute__((deprecated)) 

是gloabl的方法,下面的例子

-(void) exmapleMethodName DEPRECATED_ATTRIBUTE{ 
      // code 
    } 
1

您还可以使用DEPRECATED_MSG_ATTRIBUTE( “改用另一个属性”)并提供一个有意义的消息,暗示用户使用什么来代替弃用的属性。 当使用该属性时,Xcode将显示警告。

例如:

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

enter image description here