NSArray上无法识别的选择器:'NSInvalidArgumentException'

时间:2014-07-02 09:20:45

标签: ios objective-c exception

我坐了一个小时就出现了一些奇怪的异常。 我尝试用以下方法调用一些方法:

for (int i = 0; i < [[DBElements objectAtIndex:index] count]; i++) {
            NSLog(@"selected Element: %@", [[DBElements objectAtIndex:index] objectAtIndex:i]);
            [self addElementsToView:dash withString:[[DBElements objectAtIndex:index] objectAtIndex:i] index:index andSubindex:i];
        }

该方法的类型为: - (void) addElementsToView: (UIView *) dash withString: (NSString *) type index:(NSInteger)index andSubindex : (int) i {}

NSLog告诉我:

  

所选元素:NUMBER   所以索引的东西还可以。   为什么我在下一步中遇到以下异常:

     

[__ NSArrayI intValue]:发送到实例的无法识别的选择器   0x14d44f70 * 由于未捕获的异常而终止应用程序   &#39; NSInvalidArgumentException&#39;,原因:&#39; - [__ NSArrayI intValue]:   无法识别的选择器发送到实例0x14d44f70&#39;

更新: DBElements是:

  

(           (           数,           标签       )       标签   )

索引为0 我是0.所以它显示类型为NSString的NUMBERS。

2 个答案:

答案 0 :(得分:2)

尝试施放

withString:[[DBElements objectAtIndex:index] objectAtIndex:i]
像这样:

withString:(NSString *)[[DBElements objectAtIndex:index] objectAtIndex:i]

希望它有所帮助!

答案 1 :(得分:0)

您的代码中的某处您正在 intValue上调用 NSArray 。也许在addElementsToView方法中。

查看(简短)代码示例,我假设它与DBElements有关。您可能希望在NSString上调用intValue将其转换为数字值。

如果你有一个嵌套在数组中的数组,那么请确保你在正确的对象上调用正确的选择器。