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[row]),但格式字符串没有引用数据参数。看起来你没有包括你的百分号,并且需要这样的东西:

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

我相信异常意味着您已将视图设置为 UIPickerView 的数据源,并且您的视图没有响应 numberOfComponentsInPickerView 方法。您可能打算将 UIPickerView 的数据源设置为视图控制器(可能是自己),并确保您的视图控制器实现 numberOfComponentsInPickerView。

于 2013-07-15T15:34:59.117 回答