如果对引用类型(对象)使用"assign"属性,则为Xcode警告

Rob*_*rto 9 xcode objective-c automatic-ref-counting

当使用assignARC中的属性声明对象(引用类型)属性时,是否存在Xcode警告或任何形式的警告:

@property (nonatomic, assign) NSNumber *myNumber;
Run Code Online (Sandbox Code Playgroud)

我将long属性转换为NSNumber意外忘记将属性更改assignstrong.

没有编译时警告或错误,并且有时会发生的运行时错误只会发生,这是一个非常模糊的崩溃.只有在调试时才会出现崩溃和类似错误"message sent to a deallocated instance",这是因为在开发过程中使用了僵尸对象.

对于非调试版本,崩溃不会经常发生,并且会报告(例如,Crashlytics)EXC_BAD_ACCESS - KERN_INVALID_ADDRESS.我假设崩溃是由这个问题引起的.

我知道assign如果你想保持对它的弱引用,那么它是对象的有效选项,并且当对象被释放时你不希望指针自动变为NULL.但是,我想应该有一个可以打开或关闭的警告,因为assign不是你通常想在ARC中使用的东西,但我在构建设置中找不到它.

uto*_*ria 3

不幸的是,我找不到任何警告标志。不过,拥有这将是一件很酷的事情。您可以参考此站点,获取可以在 Xcode 中启用的所有 clang 警告的列表。