2016-11-07 86 views
0

當某人在被宣佈爲分配的財產上調用發佈消息時,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。

+0

'int' var'release'?我不明白它應該如何工作,它應該給你一個警告。 – Larme

+0

我很確定它會給你一個編譯器錯誤,因爲int不會從NSObject繼承,你不能調用它的釋放。 – Windindi

+0

@Windindi:將其寫爲答案。 –

回答

1

我很確定它會給你一個編譯器錯誤,因爲int不會從NSObject繼承,你不能調用它的釋放。

不管怎麼說,如果你考慮一個具有弱屬性的NSObject,當你調用release時不會立即崩潰,因爲對象的原始擁有者會將對象引用計數遞增到atleast 1.當對象的所有者將被釋放時該應用程序將崩潰,因爲它會嘗試釋放該對象,因爲它是所有者,但該對象被釋放,因爲非所有者錯誤地減少了引用計數。