在didFinishLaunchingWithOptions發佈兩次,第一次代碼:的NSMutableArray由發佈
NSMutableArray *k = [[NSMutableArray alloc] initWithCapacity:10];
[k release];
(我把它降低到多少調試後,這種情況下),我得到
*** -[__NSArrayM class]: message sent to deallocated instance 0x7576c90
*** -[__NSArrayM respondsToSelector:]: message sent to deallocated instance 0x7576c90
如果我檢查在alloc行之後的'k'上保留計數,它是1.如果我用NSArray替換NSMutableArray,一切都很好。這裏發生了什麼?
在這之後你用'k'做了什麼? –
@chrislhardin什麼?這絕對不是這種情況。 'NSMutableArray'(通常)是通過後臺的鏈表實現的,'NSArray'使用實際的數組。不同的環境和構造函數可以改變它的支持方式。 –
發生了什麼是這兩條線以外的事情。我將它們複製到一箇舊的(ARC之前的)測試項目中,並沒有發生錯誤。 –