Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么重新加载应用程序时,核心数据中的布尔值会发生变化?_Ios_Objective C_Core Data - Fatal编程技术网

Ios 为什么重新加载应用程序时,核心数据中的布尔值会发生变化?

Ios 为什么重新加载应用程序时,核心数据中的布尔值会发生变化?,ios,objective-c,core-data,Ios,Objective C,Core Data,当我滑动UITableViewCell(其对象来自核心数据)时,它会将单元格的对象设置为“已读”(在代码中:isRead变为YES) 这是这样完成的: - (void)swipedToMarkCellRead:(Article *)article { if ([article.isRead isEqualToNumber:@YES]) { article.isRead = @NO; } else { article.isRea

当我滑动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
作为核心数据中的一个瞬态属性,因此每当访问它时,我都可以对其进行操作,并对其进行如下操作:

- (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;
}

不知怎么搞混了?我看不出是什么导致了这种变化。

很简单,瞬态属性不是持久存储的;它们从不写入数据库,这就是为什么它们默认返回到
NO


非常简单,瞬态属性不会持久存储;它们从不写入数据库,这就是为什么它们默认返回到
NO


如果要存储值,它不应该是一个瞬态属性,是吗?如果要存储值,它不应该是一个瞬态属性,是吗?