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( "代わりにanotherPropertyを使用してください。")を使用して、非推奨のプロパティの代わりに何を使用するかをユーザーに示唆する意味のあるメッセージを提供することもできます。プロパティが使用されると、Xcodeは警告を表示します。

例:

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

ここに画像の説明を入力してください

于 2018-02-07T22:51:39.543 に答える
1

.pchに次のようなマクロを入力すると、すべてのアプリでgloablになります。

    #define DEPRECATED_ATTRIBUTE     __attribute__((deprecated))

次の例のようにメソッドをマークします

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