在我的AppDelegate我宣佈一個NSMutableArray作爲一個屬性:如何停止我的AppDelegate中的NSMutableArray被釋放?
@property NSMutableArray *delegateValuableItems;
,並在didFinishLaunchingWithOptions分配它:
self.delegateValuableItems = [[NSMutableArray alloc] initWithCapacity:3];
我在我的應用程序有多個視圖控制器,但只有一個訪問該屬性:
[appDelegate.delegateValuableItems addObject:@"a"];
先前已將AppDelegate定義爲視圖控制器中的屬性:
@property AppDelegate *appDelegate;
,並引用它在viewDidLoad中:
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
我的問題是,如果應用程序被單獨留幾分鐘的NSMutableArray被釋放。
至少我認爲是。
如果我運行應用程序並馬上輸入所有細節,但是如果讓它運行幾分鐘[appDelegate.delegateValuableItems addObject:@"a"];
不會將該對象添加到數組,則一切正常。
感謝您的幫助!
可能是因爲iOS在10分鐘後睡覺了你的應用程序,它已經在後臺。你是否將你的應用程序發送到後臺?並確保你的屬性聲明爲強:'@property(nonatomic,strong)NSMutableArray delegateValuableItems' – lucaslt89
當你嘗試添加它時,應用程序崩潰了嗎? –
XCode 4.3默認情況下屬性變強。如果您使用的是早期版本,則需要編寫: @property(strong)NSMutableArray * delegateValuableItems; –