当我滑动我的 UITableViewCell (其对象来自核心数据)时,它将单元格的对象设置为“读取”(在代码中:isRead
变为YES
)。
这是这样完成的:
- (void)swipedToMarkCellRead:(Article *)article {
if ([article.isRead isEqualToNumber:@YES]) {
article.isRead = @NO;
}
else {
article.isRead = @YES;
}
NSManagedObjectContext *context = self.managedObjectContext;
NSError *error;
[context save:&error];
}
但是,下一次应用加载文章时,它又回到未读状态(或isRead
等于NO
)。我isRead
在 Core Data 中创建了一个瞬态属性,因此每当它被访问时,我都可以对其进行操作,并且我可以这样操作它:
- (NSNumber *)isRead {
[self willAccessValueForKey:@"isRead"];
NSNumber *isRead = [self primitiveValueForKey:@"isRead"];
[self didAccessValueForKey:@"isRead"];
// If at 100% progress (finished) or it's already marked as read
if ([self.progress intValue] >= 1 || [isRead boolValue]) {
isRead = @YES;
}
else {
isRead = @NO;
}
return isRead;
}
这是否令人困惑?我看不出是什么导致了这种变化。