0
我剛剛使用Xcode的工具將項目從MRR移動到ARC。我有這樣的例程:ARC在方法中創建新對象
@interface myObject
{
NSMutableArray* __strong myItems;
}
@property NSMutableArray* myItems;
- (BOOL) readLegacyFormatItems;
@end
- (BOOL) readLegacyFormatItems
{
NSMutableArray* localCopyOfMyItems = [[NSMutableArray alloc]init];
//create objects and store them to localCopyOfMyItems
[self setMyItems: localCopyOfMyItems]
return TRUE;
}
這在MRR下工作正常,但在ARC下,myItems會立即發佈。我該如何解決這個問題?
我已閱讀關於__strong和__weak引用,但我還沒有看到如何在這種情況下應用它們。
非常感謝所有的信息!
感謝您的信息。那麼也許我犯的錯誤就是我首先創建MyObject的方式。當一個特定的菜單項被點擊時,我有一個IBAction。它看起來像這樣: (IBAction)importLegacyItems:(id)sender {myObject * newInstanceOfmyObject; newInstanceOfmyObject = [[myObject alloc] init]; [newInstanceOfmyObject \t \t \t readLegacyFormatItems]; } 我必須做一些事情來保持newInstanceOfmyObject在這個例程結束時被釋放嗎? – VikR
奇怪的是,我無法在這裏更好地格式化! – VikR
我想我可能已經找到了它 - 我需要通過windowcontroller創建對象。例如theWindowController = [[NSWindowController alloc] initWithWindowNibName:@「MyObject」myObject]; – VikR