2013-03-19 10 views

risposta

48

A meno che non si vuole veramente deprecate basata sulla versione iOS, che ho il sospetto non voglio fare, puoi usare DEPRECATED_ATTRIBUTE

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

C'è un modo è possibile aggiungere un messaggio per dire il utente quale proprietà dovrebbero usare invece? – fatuhoku

+5

@fatuhoku Usa 'DEPRECATED_MSG_ATTRIBUTE (messaggio)'. – ThomasW

+0

Molto bello. Grazie. – fatuhoku

13

da 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) 

è possibile utilizzare queste macro

questo è un esempio in UITableViewCell.h

@property(nonatomic,copy) NSString *text NS_DEPRECATED_IOS(2_0, 3_0);      // default is nil 
+3

Usa 'DEPRECATED_ATTRIBUTE' da' AvailabilityMacros.h' se non dipende dalla versione iOS – Sebastian

1

è possibile digitare macro come questo qui di seguito uno in PCH essere Gloabl per tutta l'applicazione

#define DEPRECATED_ATTRIBUTE  __attribute__((deprecated)) 

nel marchio metodo seguente esempio

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

È inoltre possibile utilizzare DEPRECATED_MSG_ATTRIBUTE ("Usa un'altra proprietà invece.") E fornire un messaggio significativo che suggerisca all'utente cosa usare al posto della proprietà deprecata. Xcode mostrerà un avvertimento quando viene utilizzata la proprietà.

esempio:

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

enter image description here

Problemi correlati