0

私はこのモデルを持っています:

@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;

配列にデータを追加します。

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 are int の原因となるはずです) ?

私は試してみました:

Days = [daysArr intValue];

しかし、私はエラーを受け取ります:データの目に見えるインターフェースはセレクターintValueを宣言しません

4

1 に答える 1

1

「キー値コーディング プログラミング ガイド」では、「@sum」コレクション演算子について次のように述べています。

@sum 演算子は、演算子の右側のキー パスで指定されたプロパティの値の合計を返します。各数値は double に変換され、値の合計が計算され、合計が NSNumber のインスタンスとしてラップされて返されます。

したがって、次のように動作するはずです。

NSNumber *sumDays = [self.myArray valueForKeyPath:@"@sum.Days"];
int days = [sumDays intValue];
于 2012-11-30T20:54:34.053 に答える