0

文字列をデータに変換し、データを別のテキストフィールドに配置するコードをまとめました。すべて正常に動作しますが、プログラムを実行して、このコードを含むIBアクションのボタンをタップすると、次のようになります。

[InputData setStringValue:OutputString];

このエラーが発生します:

スレッド1:プログラム受信信号:「SIGABRT」。

Xcodeの下部にある[出力]領域に、次のメッセージが表示されます。

キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています、理由:'-[NSConcreteMutableData setStringValue:]:認識されないセレクターがインスタンス0x62507e0に送信されました'

なぜこれが起こるのですか?警告は私にそれを伝えます:

インスタンスメソッド-setStringValue'が見つかりません(戻りタイプのデフォルトはidです)

何が起こっているのか、私はそれを調べました、そしてそれはうまくいくはずのようです。私は何が間違っているのですか?私はObjective-Cの初心者にすぎません。

ありがとう、何でもありがたいです。

4

3 に答える 3

2

デバッガーによると、InputDataオブジェクトはNSMutableDataのインスタンスであり、 setStringValueメソッドはありません。コードを調べて、実際にターゲットにしようとしているオブジェクトのメソッドを呼び出していることを確認します。

于 2011-09-05T19:57:06.077 に答える
1

NSDataにsetStringValueメソッドを含むカテゴリがあるようです。カテゴリ実装ファイルは、NSData-extras.mのような名前が付けられている可能性があります。ファイルがXcodeに追加されていることを確認します(Xcodeにすでに認識されている場合は、ビルド中のターゲットの一部です)。

于 2011-09-11T04:16:27.050 に答える
0

InputDataがUITextFieldである必要があると仮定して、これを試してください。

[InputData setText:OutputString];
于 2011-09-05T18:57:19.783 に答える