2012-02-21 79 views
1

我在註釋行中收到此錯誤。 datachoice是一個UserData對象,它是外部的,但是我導入它。 我保留.h的日期以及我不知道什麼是加入,有可能發佈的東西?EXC_BAD_ACCESS當通過NSDate指針

.H

#import <UIKit/UIKit.h> 

@interface DateViewController : UIViewController 

@property (strong, retain) IBOutlet UIDatePicker *datepick; 
@property (strong, retain) IBOutlet NSDate *datesave; 


- (IBAction)okDatebutton:(id)sender; 

@end 

.M

-(IBAction)okDatebutton:(id)sender { 

datesave = [datepick date]; 
datechoice->date = datesave; //<-----------------here is the EXC_BAD_ACCESS 



} 
@end 
+0

嘗試在賦值給'datesave'之後添加一個'NSLog(「%p」,datechoice),並查看是否將非null打印到日誌中。 – dasblinkenlight 2012-02-21 16:51:53

+0

你是什麼意思:*「datachoice是一個UserData對象,它是外部的,但是我導入了它。」*?你能顯示相應的代碼嗎? – sch 2012-02-21 16:52:40

回答

2

從不(*)使用->運算符作爲對象。您的意思是:

self.datechoice.date = datesave; 

(*)有一個obscure exception該規則在那裏可以必需的,但它並不適用於iOS的,僅適用於Mac。

+0

它看起來像datachoice是一個'extern' ed全局,所以OP可能不想'自我'。 – dasblinkenlight 2012-02-21 16:55:40

+0

感謝這本書,這是一個有趣的閱讀:) dasblinkenlight 2012-02-21 16:56:19

+0

我不能做自我,因爲日期選擇是UserDate的外部對象,或者我可以嗎?我可能不明白你的意思,謝謝.. – user1191343 2012-02-21 16:57:49

1

是否使用ARC?我認爲你的財產定義看起來不對。

如果我沒有記錯,strong只對ARC有效,retain只有在沒有ARC的情況下才有效。我很驚訝它可以讓你編譯,如果這是問題,但。

+0

'保留'在ARC下有效。它被視爲「強」的同義詞。你說得對,定義是錯誤的,但我不認爲這是原因。 – 2012-02-21 16:53:37

+0

這樣變強還是變弱? – user1191343 2012-02-21 16:58:38

+0

或'(nonatomic,retain)' – user1191343 2012-02-21 16:59:47