1

私はチュートリアル アプリを参考にして、靴のサイズを米国の靴のサイズから他の国 (ヨーロッパ、イギリス、日本) に変換するアプリを作成しようとしています。

ViewController.m ファイルに次のような警告が表示されます。

フォーマット文字列で使用されていないデータ引数

次のコードで:

NSString *resultString = [[NSString alloc] initWithFormat: @"3f USS = 3f @", size, result, _countryNames[row]];

アプリを実行すると、デバッグ エリアに次のメッセージが表示されます。

2013-07-15 10:50:07.377 ShoeSizeConverter[9617:c07] -[UIView numberOfComponentsInPickerView:]: 認識されないセレクターがインスタンス 0x7170c10 に送信されました2013-07-15 10:50:07.379 ShoeSizeConverter
[9617:c07]キャッチされない例外 'NSInvalidArgumentException'、理由: '-[UIView numberOfComponentsInPickerView:]: 認識されないセレクターがインスタンス 0x7170c10 に送信されました'
*
First throw call stack: (0x1c92012 0x10cfe7e 0x1d1d4bd 0x1c81bbc 0x1c8194e 0xc634 0xd25f 0x642dd 0x10e36b0 0x228efc0 0x228333c 0x228eeaf 0x1032bd 0x4bb56 0x4a66f 0x4a589 0x497e4 0x4961e 0x4a3d9 0x4d2d2 0xf799c 0x44574 0x4476f 0x44905 0x4d917 0x1196c 0x1294b 0x23cb5 0x24beb 0x16698 0x1beddf9 0x1bedad0 0x1c07bf5 0x1c07962 0x1c38bb6 0x1c37f44 0x1c37e1b 0x1217a 0x13ffc 0x1ecd 0x1df5) libc+ +abi.dylib: 呼び出されたときに例外をスローして終了します

4

2 に答える 2

2

次のコードで、ViewController.m ファイルに「フォーマット文字列で使用されていないデータ引数」という警告が表示されます。

書式指定子の前にパーセント記号を追加する必要があります。の代わりに3f、 などが必要です%3f。したがって、フォーマット文字列は次のようになります。

@"%3f USS = %3f %@"
于 2013-07-15T15:31:46.670 に答える
0

警告は、データ引数 (サイズ、結果、_countryNames[行]) が含まれているが、フォーマット文字列にデータ引数への参照がないことを意味します。パーセント記号が含まれていないようで、次のようなものが必要です。

NSString *resultString = [[NSString alloc] initWithFormat: @"%3f USS = %3f %@", size, result, _countryNames[row]];

この例外は、ビューを UIPickerView のデータ ソースとして設定し、ビューが numberOfComponentsInPickerView メソッドに応答しないことを意味すると思います。おそらく、UIPickerView のデータ ソースをビュー コントローラー (おそらく自己) に設定し、ビュー コントローラーが numberOfComponentsInPickerView を実装していることを確認します。

于 2013-07-15T15:34:59.117 に答える