2012-01-13 117 views
0

當我將UITextField中的文本內容發送到字典時出現此錯誤。但我看不出這個代碼有什麼問題:錯誤:'NSInvalidArgumentException',原因:' - [__ NSCFString text]:

NSMutableDictionary *newDrink = [[NSMutableDictionary alloc]init]; 
[newDrink setValue:self.nameTextField.text forKey:NAME_KEY]; // error here 

什麼是可以的?

+0

是nameTextField一個UITextField還是它是一個NSString?看起來它不是UITextField。 – bandejapaisa 2012-01-13 15:29:52

回答

-3

我下注self.nameTextField爲零。

檢查。

此外,當試圖從子類訪問超類成員變量或屬性時,請確保在超類中創建實例變量(在您的情況下,名爲nameTextField),看看是否可以解決您的問題。 As this iPhoneSDK.com thread says「,這是一個非常具體的問題,當你在不創建實例變量的情況下綜合一個屬性時就會出現問題。」

+0

你可以調用Objective-C中nil對象的方法,你的應用程序不會崩潰 - 它會忽略這個調用。但是,如果你釋放一個對象,然後嘗試調用它的一個方法......那麼它會崩潰與EXC_BAD_ACCESS! – bandejapaisa 2012-01-13 15:31:56

+0

你是對的,self.nameTextField是零。我繼承了另一個UIViewController。在這個UIViewController中,我有IBOutlet的UITextField ...並且一切都很完美。但在這個小類中,沒有。爲什麼?我沒有這個控制器的XIB,我想用我的超類的同一個xib。當我繼承時,我失去了IBOutlet和UITextField之間的聯繫? – holydev0tion 2012-01-13 15:49:22

+0

錯誤的答案。 Objective-C for beginners ...如果該方法返回一個對象,則發送給nil的消息返回0(nil)。請參閱http://developer.apple.com/library/ios/documentation/cocoa/conceptual/objectivec/Chapters/ocObjectsClasses.html#//apple_ref/doc/uid/TP30001163-CH11-SW7 – 2012-01-13 15:50:08

0

我懷疑self.nameTextField已被釋放,並且內存部分覆蓋,所以它看起來像一個__NSCFString

檢查nameTextField是否保留正確。

+0

我正在使用ARC。我不釋放nameTextField。 – holydev0tion 2012-01-13 15:50:15

相關問題