2011-03-01 84 views
1

當我更新AppDelegate varibale時,我的應用程序崩潰。我是以錯誤的方式聲明對象還是UIColor沒有資格像這樣傳遞?更改appDelegate變量時的應用程序崩潰

在AppDelegate.h我宣佈的UIColor對象:

UIColor *myColor; 

@property(nonatomic,retain) UIColor *myColor; 

In my viewController i update the myColor when a button pressed. 

-(IBAction) pressed:(id)sender{ 
    YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    appDelegate.myColor = [sender backgroundColor]; 
} 

但是,應用程序是撞車後我按幾次按鈕更新myColor。任何專家都可以指出哪個部分出錯了嗎?

+0

是你合成的屬性myColor。 – Ishu 2011-03-01 07:02:07

+0

撞車發生在哪裏?發生時,請在調試器中檢查堆棧跟蹤。 – Bogatyr 2011-03-01 07:15:28

回答

0

你有沒有在這條線上發出警告? [sender backgroundColor];

如果是這樣,而不是使用[sender backgroundColor];

使用,

UIButton *but=(UIButton *)sender; 
appDelegate.myColor=[but backgroundColor]; 
+0

或者只是重寫這樣的方法的原型: - (IBAction)按下:(UIButton * senderButton;這樣,Interface Builder不會讓你連接別的東西,而不是按鈕,並且不需要轉換,這只是隱藏警告,但不能阻止問題發生 – Guillaume 2011-03-01 07:52:17

+0

THanks Kingo。但我追蹤錯誤的來源,這是由於我的應用程序使用appDelegate.myColor的某個地方,而我試圖更新值,因此導致應用程序崩潰。 – eric 2011-03-02 03:34:47

相關問題