我将重新提出这个问题:
我使用Core Data并定义了一个带有 Attribute: attribute1 as Integer16的实体。
我读了属性:
NSArray *objects = [objectContext executeFetchRequest:request error:&error];
int integer1 = [[objects valueForKey:@"attribute1"] integerValue]
在这最后一句话应用程序崩溃。
目的是实现算术:
int integer2 = 0;
integer2 = integer2 + integer1;
也许我必须使用 NSNumber、NSInteger、NSUInteger?
真的,我不明白这么简单的事情怎么用 Objective C 这么复杂。
没有意见...
原始问题:
首先,我使用 XCode 5 (iOS 7)
我已将属性countStep定义为Integer 16的实体。在该属性中,我保存了一个值(即 10)
稍后,我想读取该值:
int integerVal1 = [[objects valueForKey:@"countStep"] integerValue];
为了实现算术运算:
int integerVal2;
integerVal2 = integerVal2 + integerVal1
但在源代码行:
int integerVal1 = [[objects valueForKey:@"countStep"] integerValue];
应用程序崩溃并显示错误消息:
*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSArrayI integerValue]:无法识别的选择器发送到实例
我尝试了几种选择。
@property (nonatomic, assign) int integerVal2;
或者:
NSString *string = [[objects valueForKey:@"countStep"]description];
int integerVal1 = [NSNumber numberWithInteger:[string intValue]];
integerVal2 = integerVal2 + integerVal1
问题是一样的:将字典对象转换为原始元素 int(整数)以计算算术运算: integerVal2 = integerVal2 + integerVal1
任何想法?