2010-01-21 48 views
1

在我的應用程序我想運行一些代碼,目前存在於我的applicationWillTerminate在appDelegate中。 我有相同的代碼到當前正在運行的方法(通過NSLog驗證),但代碼似乎沒有執行相同的方式。iPhone dev - 問題與@selector

以下代碼來自我的applicationWillTerminate,它保存數據,準備下次加載。

[myArray makeObjectsPerformSelector:@selector(saveAllDataLeads)];

當我插入到我的DetailViewController.m(在當前活動的方法中),我插入以下內容。

[appDelegate.myArray makeObjectsPerformSelector:@selector(saveAllDataLeads)];

問題是,它只是不執行saveAllDataLeads中的東西,有人可以看到什麼是錯的?或者需要更多信息。

問候

在DetailViewController.h

我宣佈

MyAppDelegate *的appDelegate;

+2

我假設你也在某處設置了DetailViewController.m中的appDelegate,對嗎? – 2010-01-21 10:17:29

+2

您是否檢查過您的appDelegate是否有效?您實際上並不需要存儲委託對象,因爲您可以使用[[UIApplication sharedApplication]委託] – Vladimir 2010-01-21 10:19:40

+0

@Hutaffe訪問它,您是指什麼額外類型的聲明?我只有.h – oberbaum 2010-01-21 14:08:20

回答

0

已添加到myArray的,必須有一個不帶參數的,名爲saveAllDataLeads選擇的對象,那就是:

@interface MyObject : NSObject { 
} 
- (void)saveAllDataLeads; 
@end 

@implementation MyObject 
- (void)saveAllDataLeads { 
    // do something 
} 
@end 

然後,想必某處要添加的MyObject的實例MYARRAY:

MyObject* instance = [MyObject new]; 
[appDelegate.myArray addObject:instance]; 
[instance release];