2013-03-19 15 views

Antwort

48

Es sei denn, Sie wirklich verbitten wollen basierend auf iOS-Version, die ich Sie vermuten, nicht wollen, können Sie DEPRECATED_ATTRIBUTE

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

Gibt es eine Möglichkeit Sie eine Nachricht hinzufügen können, die sagen, Benutzer welche Eigenschaft sollten sie stattdessen verwenden? – fatuhoku

+5

@fatuhoku Verwenden Sie 'DEPRECATED_MSG_ATTRIBUTE (Nachricht)'. – ThomasW

+0

Sehr schön. Vielen Dank. – fatuhoku

13

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

können Sie diese Makros

verwenden dies ist ein Beispiel in UITableViewCell.h

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

Verwenden 'DEPRECATED_ATTRIBUTE' von' AvailabilityMacros.h', wenn es nicht auf der iOS-Version abhängt – Sebastian

1

Sie Makro wie dies unter einem in PCH für alle App

#define DEPRECATED_ATTRIBUTE  __attribute__((deprecated)) 

in Marke das Verfahren, wie folgendes Beispiel sein gloabl eingeben können

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

Sie können auch DEPRECATED_MSG_ATTRIBUTE verwenden ("Verwenden Sie stattdessen anotherProperty.") Und geben Sie eine sinnvolle Nachricht an, die den Benutzer anweist, was anstelle der veralteten Eigenschaft zu verwenden ist. Xcode zeigt eine Warnung an, wenn die Eigenschaft verwendet wird.

Beispiel:

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

enter image description here