私はこのオブジェクトを持っています:
@interface Song : NSManagedObject
@property (nonatomic, strong) NSString *songName;
@property (nonatomic) int32_t achievedPoints;
このようにプロパティを設定すると
Song *song1 = [[SongStore sharedStore] createSong];
song1.songName = @"Song 1";
song1.achievedPoints = 0;
すべてが機能しますが、achievedPoints
変数を0以外に設定しようとすると、EXC_BAD_ACCESSが取得されます。
これは、createSong
メソッドが行うことです。
- (Song *)createSong {
double order;
if ([allSongs count] == 0) {
order = 1.0;
} else {
order = [[allSongs lastObject] orderingValue] + 1.0;
}
Song *p = [NSEntityDescription insertNewObjectForEntityForName:@"Song" inManagedObjectContext:context];
[p setOrderingValue:order];
[allSongs addObject:p];
return p;
}
値を取得して0に設定することが機能する理由はわかりませんが、ゼロ以外のものを指定するとプログラムがクラッシュします。どんな助けでも大歓迎です。