我从我的应用中的核心数据中获取了一个结果,并且需要获取我给它的'capacity'属性的整数值。
'capacity'属性是我核心数据模型中的NSInteger 16。
我得到的结果如下:
entity = [NSEntityDescription entityForName:@"TableInfo" inManagedObjectContext:appDelegate.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@", [NSString stringWithFormat:@"%@", [tablesArray objectAtIndex:row]]]];
NSArray *selectedTableFetched = [appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:&error];
现在我的问题是如何从我的结果中获取'capacity'值?我知道有结果,因为我已经检查了数组的计数,我试过这个:
NSNumber *n = [selectedTableFetched valueForKey:@"capacity"];
它给了我一些东西,当访问NSNumber时,我得到一个无意义的长数,所以如果我尝试访问整数值,如下:
[n integerValue]
它崩溃了应用程序,我收到了这个错误:
'NSInvalidArgumentException', reason: '-[__NSArrayI integerValue]: unrecognized selector sent to instance 0x138870'
希望你能帮助我,我需要做的就是从容量属性中获取整数值,谢谢。
答案 0 :(得分:5)
selectedTableFetched
是一个数组:
NSArray *selectedTableFetched = [appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:&error];
因此,在执行fetchRequest
之前,您希望使用元素(可能是唯一基于valueForKey
谓词的元素):
NSManagedObject *managedObject = [selectedTableFetched lastObject];
NSNumber *n = [managedObject valueForKey:@"capacity"];
NSInteger *yourInteger = [n integerValue];
答案 1 :(得分:0)
我认为您尝试将一个Integer分配给Number类型 尝试更改行
NSNumber *n = [selectedTableFetched valueForKey:@"capacity"];
要
NSInteger *n = [selectedTableFetched valueForKey:@"capacity"];