ios - 从 CoreData 实体中的 NSNumber 获取 intValue 时,无法识别的选择器崩溃

标签 ios objective-c cocoa-touch core-data crash

我正在从核心数据存储中检索一个实体并将其放入名为 fetchedObjects 的数组中。我正在尝试从 NSNumber 获取整数值,但我的应用程序崩溃了。

代码如下:

 NSNumber *idioma = [fetchedObjects valueForKey:@"idioma"];

如果像这样执行NSLog():

  NSLog(@"idioma = %@", idioma);

我得到类似的东西 idioma = ( 0 )

但是,如果我尝试在 NSNumber 上调用 intValue,应用程序就会崩溃。这是一个例子:

if ([idioma intValue] > 0 ) {
   //do something
 } else {
   //else do something else
 }

错误消息和堆栈跟踪顶部:

2014-04-30 21:50:15.100 Mensagens 2[18797:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI intValue]: unrecognized selector sent to instance 0x8f31080'
*** First throw call stack: (
        0   CoreFoundation                      0x01b5d1e4 __exceptionPreprocess + 180
        1   libobjc.A.dylib                     0x018dc8e5 objc_exception_throw + 44
        2   CoreFoundation                      0x01bfa243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
        3   CoreFoundation                      0x01b4d50b ___forwarding___ + 1019
        4   CoreFoundation                      0x01b4d0ee _CF_forwarding_prep_0 + 14
        5   Mensagens 2                         0x000034fd -[ViewController logMensagem] + 1645
        6   Mensagens 2                         0x00002da0 -[ViewController viewDidLoad] + 112
        7   UIKit                               0x006bb33d -[UIViewController loadViewIfRequired] + 696
        8   UIKit                               0x006bb5d9 -[UIViewController view] + 35

This is how I'm setting the "idioma"

NSNumber *number = [NSNumber numberWithInteger:lingua]; // lingua is a NSInteger
[entitie setIdioma:number];

The Entitie entitie.h

最佳答案

看起来你有一个带有 NSNumber 的 NSArray,但你试图像访问 NSNumber 一样访问它。这一行:

NSNumber *idioma = [fetchedObjects valueForKey:@"idioma"];

应该是:

 NSNumber *idioma = [[fetchedObjects valueForKey:@"idioma"]objectAtIndex:0];

关于ios - 从 CoreData 实体中的 NSNumber 获取 intValue 时,无法识别的选择器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400397/

相关文章:

ios - 如何发布图片?

ios - 设置默认时区不成功

ios - UISegmentedControl 在触摸后恢复到原始帧

objective-c - 以编程方式在 UINavigationController 中设置 UINavigationBar 的自定义子类

objective-c - 在太多对象中初始化某些值会使我的应用程序崩溃

ios - 获取ACAccount Facebook用户全名为null

ios - 在循环中使用 dataWithContentsOfURL 内存泄漏

ios - 是否可以创建只能创建 IPA 文件但不能删除或触摸其他任何内容的用户帐户?

ios - 在 ios 应用程序退出时执行操作

ios - 将 NSString 与 NSArray 中的单词进行匹配的最快方法