2012-01-13 8 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

答えて

-3

私はself.nameTextFieldが0であると賭けました。

を確認してください。

また、スーパークラスのメンバ変数またはプロパティにサブクラスからアクセスしようとすると、スーパークラスに(あなたのケースでは、nameTextFieldという名前の)インスタンス変数を作成し、問題が解決するかどうか確認してください。 As this iPhoneSDK.com thread says "インスタンス変数を作成せずにプロパティを合成すると、これは非常に特殊な問題になります。

+0

Objective-Cでnilオブジェクトのメソッドを呼び出すことはできますが、アプリケーションはクラッシュしません。コールは無視されます。しかし、オブジェクトを解放してメソッドを呼び出すと、EXC_BAD_ACCESSでクラッシュします。 – bandejapaisa

+0

あなたは正しいです、self.nameTextFieldはnilです。私は別のUIViewControllerを継承しています。そしてこのUIViewControllerでは、私はIBOutletのUITextFieldを持っています...そしてすべてが完全に機能します。しかし、このサブクラスでは、nilです。どうして?私はこのコントローラーのためのXIBを持っていない、私はスーパークラスの同じxibを使いたい。私が継承すると、IBOutletとUITextFieldの間の接続が失われますか? – holydev0tion

+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 –

0

self.nameTextFieldがリリースされており、メモリが部分的に上書きされていると思われるので、__NSCFStringのように見えます。

nameTextFieldが正しく保持されていることを確認します。

+0

私はARCを使用しています。私はnameTextFieldを解放しない。 – holydev0tion

関連する問題