分配时发布 属性
Release on assign property
当有人在 属性 上调用发布消息时 MRC 中发生了什么,声明为分配。
在 .h 文件中:
@property (assign) int count;
在 .m viewDidLoad 方法中:
_count = 10;
NSLog(_count);
[_count release]; // According to me it may give EXC_BAD_ACCESS
NSLog(_count);
只是想确认一下,因为我没有那么多旧的 Xcode 可以测试 MRC。
我很确定它会给你一个编译器错误,因为 int 不是从 NSObject 继承的,你不能在它上面调用 release。
无论如何,如果你考虑一个 NSObject 弱 属性 它不会在你调用 release 时立即崩溃,因为对象的原始所有者将对象引用计数增加到至少 1。当对象的所有者will be deallocated 是应用程序崩溃的时间,因为它会尝试释放对象,因为它是所有者,但对象被释放是因为非所有者错误地减少了它的引用计数。
当有人在 属性 上调用发布消息时 MRC 中发生了什么,声明为分配。
在 .h 文件中:
@property (assign) int count;
在 .m viewDidLoad 方法中:
_count = 10;
NSLog(_count);
[_count release]; // According to me it may give EXC_BAD_ACCESS
NSLog(_count);
只是想确认一下,因为我没有那么多旧的 Xcode 可以测试 MRC。
我很确定它会给你一个编译器错误,因为 int 不是从 NSObject 继承的,你不能在它上面调用 release。
无论如何,如果你考虑一个 NSObject 弱 属性 它不会在你调用 release 时立即崩溃,因为对象的原始所有者将对象引用计数增加到至少 1。当对象的所有者will be deallocated 是应用程序崩溃的时间,因为它会尝试释放对象,因为它是所有者,但对象被释放是因为非所有者错误地减少了它的引用计数。