通过NSFetchedResultsController swift iOS访问非持久性变量

通过NSFetchedResultsController swift iOS访问非持久性变量,ios,swift,core-data,nsfetchedresultscontroller,Ios,Swift,Core Data,Nsfetchedresultscontroller,是否可以通过NSFetchedResultsController访问非持久性变量 我正在使用核心数据创建联系人实体。 我又添加了一个变量,我不想持久化,我只希望这个变量在应用程序活动范围内,然后放弃 import CoreData class Contact: NSManagedObject { // Insert code here to add functionality to your managed object subclass var incomingRequest =

是否可以通过
NSFetchedResultsController
访问非持久性变量

我正在使用核心数据创建联系人实体。
我又添加了一个变量,我不想持久化,我只希望这个变量在应用程序活动范围内,然后放弃

import CoreData

class Contact: NSManagedObject {

// Insert code here to add functionality to your managed object subclass

    var incomingRequest = false  <———————— temporary variable

    override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
        super.init(entity: entity, insertIntoManagedObjectContext: context)
    }
}
导入核心数据
班级联系人:NSManagedObject{
//在此处插入代码以向托管对象子类添加功能
var incomingRequest=false
通过获取
NSFetchedResultsController
,是否有任何解决方法来获取以前设置的incomingRequest值

不,因为没有任何以前设置的值。如果您多次执行相同的获取,则不能保证获得相同的对象实例。如果您从不同的托管对象上下文执行获取,尤其是保证不获取相同的对象,这一点尤其正确。它们在per中表示相同的实例sistent存储,但它们在内存中不是同一个对象

因此,您在一个对象上将
incomingRequest
设置为
true
,然后使用“获取结果”控制器获取另一个对象。但是您没有在另一个对象上设置
incomingRequest
,因此它获取默认值

是否在数据模型中包含
incomingRequest
,取决于该值的含义和使用方式。这可能是正确的答案。您可能更喜欢将一组
NSManagedObjectID
s作为传入请求集合,这样您就可以始终确定是否应将获取的对象视为有一个传入的请求

通过获取
NSFetchedResultsController
,是否有任何解决方法来获取以前设置的incomingRequest值

不,因为没有任何以前设置的值。如果您多次执行相同的获取,则不能保证获得相同的对象实例。如果您从不同的托管对象上下文执行获取,尤其是保证不获取相同的对象,这一点尤其正确。它们在per中表示相同的实例sistent存储,但它们在内存中不是同一个对象

因此,您在一个对象上将
incomingRequest
设置为
true
,然后使用“获取结果”控制器获取另一个对象。但是您没有在另一个对象上设置
incomingRequest
,因此它获取默认值


是否在数据模型中包含
incomingRequest
,取决于该值的含义和使用方式。这可能是正确的答案。您可能更喜欢将一组
NSManagedObjectID
s作为传入请求集合,这样您就可以始终确定是否应将获取的对象视为收到传入请求。

非常感谢您的回答,我忘了尝试NSManagedObjects选项,现在我尝试了它,它对我有效!现在我将所有传入请求的联系人的NSManagedObjects存储在一个数组中,并在该数组中迭代。再次感谢(y)非常感谢您的回答,我忘了尝试NSManagedObjects选项,现在我尝试了,它对我有效!现在我将所有作为传入请求的联系人的NSManagedObjects存储在一个数组中,并在该数组中进行迭代。再次感谢(y)