我有这个模特:
@interface Data : NSObject @property (nonatomic, assign) NSDate *Start; @property (nonatomic, assign) NSDate *End; @property (nonatomic, assign) int Days; @property (nonatomic, assign) double moneyEuro; @property (nonatomic, assign) double moneyUsa; @end
一个可变阵列:
@property (strong, nonatomic) NSMutableArray* myArray;
将数据添加到Array:
Data *data =[ [Data alloc] init];
data.Start = startTemp;
data.End = endTemp;
data.Days = daysTemp;
data.moneyEuro = moneyEuroTemp;
data.moneyUsa = moneyUsaTemp;
[self.myArray addObject:data];
然后我想只提取int Days并总结它们:
Data * daysArr = [self.myArray valueForKeyPath:@"@sum.Days"];
NSLog(@"days %@", daysArr);
但是daysArr是一个NSString ??? NSLogs正常工作......
如何将daysArr更改为int(因为应该是因为Days是int)?
我试过了:
Days = [daysArr intValue];
但我收到错误:没有可见的数据接口声明了选择器intValue
答案 0 :(得分:1)
"键值编码编程指南" " @ sum"的状态收集运营商:
@sum运算符返回属性值的总和 由操作员权限的关键路径指定。每个号码都是 转换为double,计算值的总和,并且 total被包装为NSNumber的一个实例并返回。
所以以下内容应该有效:
NSNumber *sumDays = [self.myArray valueForKeyPath:@"@sum.Days"];
int days = [sumDays intValue];