質問を再構成します:
Core Dataを使用し、Attribute: attribute1を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
何か案が?