如何标示的功能,如在iOS的Objective-C头文件被弃用?
我猜有只是一些关键字某处功能后,我能坚持?
我想对于将要生成任何人试图使用过时的功能,类似于苹果的API看到的行为的编译器警告。
如何标示的功能,如在iOS的Objective-C头文件被弃用?
我猜有只是一些关键字某处功能后,我能坚持?
我想对于将要生成任何人试图使用过时的功能,类似于苹果的API看到的行为的编译器警告。
尝试附加一个属性,以您的方法声明:
- (void)fooBar __attribute__ ((deprecated));
来自这里 。
蒂姆的回答实际上将产生一个编译器警告; 其他版本仅仅是它没有任何效果WRT编译意见。
如果你看一下/usr/include/AvailabilityMacros.h,你会看到苹果是如何做到这一点。 该标头使用__attribute__((deprecated))
和__attribute__((unavailable))
根据API是否是存在的,但不推荐使用,或者实际上已经从OS除去。
代替的__attribute__((deprecated))
可以使用在使用中定义的宏<cdefs.h>
- (void)fooBar __deprecated;
// Or better:
- (void)fooBar __deprecated_msg("Use barFoo instead.");
或者你可以使用定义的宏<AvailabilityMacros.h>
- (void)fooBar DEPRECATED_ATTRIBUTE;
// Or better:
- (void)fooBar DEPRECATED_MSG_ATTRIBUTE("Use barFoo instead.");
如果您使用的Objective-C,它没有什么区别,你要使用现代化的编译器,所以你可以去苹果短语法__deprecated_msg()
但是,如果你用C跨平台,然后DEPRECATED_MSG_ATTRIBUTE()
采用了最佳的可用性定义(例如,它支持GCC3.1)。
从苹果公司的SFAuthorization.h:
/*!
DEPRECATED: Use obtainWithRight:flags:error:
@method permitWithRight:flags:
@abstract Call permitWithRight to gain a right to have
access to a privilege operation.
@param rightName The name of an authorization right.
@param flags Authorization flags.
*/
- (OSStatus)permitWithRight:(AuthorizationString)rightName
flags:(AuthorizationFlags)flags;
如果你不使用自动文档建设者我会说这样的事情就够了:
- (void)doSomething; /* DEPRECATED */
您也可以按照HeaderDoc手册 。 如果这句法使用:
/*!
* @abstract Foo is good for bar.
*
* @deprecated in version 2.0
*/