我有这个对象:
@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 有效,但除零以外的任何东西都会使程序崩溃。非常感谢任何帮助。