gpt4 book ai didi

iphone - 使用 ARC 时的条件编译

转载 作者:太空狗 更新时间:2023-10-30 03:35:51 24 4
gpt4 key购买 nike

有没有办法询问编译器是否打开了 ARC,然后根据该值进行条件编译?例如,我有一个协议(protocol):

@protocol ProtocolA

@required
-(void)protocolMethodOne

@optional
-(void)protocolMethodTwo;

@end

如果我使用的是 ARC,我希望在使用 ARC 时将 protocolMethodA 设为可选,在不使用 ARC 时设为必需。这是因为使用此方法的主要原因之一是释放对象实例。

话虽如此,这就是我希望发生的事情:

@protocol ProtocolA

#ifdef SOME_ARC_VARIABLE
@optional
#else
@required
#endif
-(void)protocolMethodOne

@optional
-(void)protocolMethodTwo;

@end

最佳答案

你应该做 #if __has_feature(objc_arc) 在启用 ARC 的情况下它会扩展到 1。

这是来自 ARC docs来自 Clang。

关于iphone - 使用 ARC 时的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com