Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Objective c 将NSManagedObject保持在CoreData NSManagedObject上下文块之外_Objective C_Ios_Xcode_Core Data_Nsmanagedobject - Fatal编程技术网

Objective c 将NSManagedObject保持在CoreData NSManagedObject上下文块之外

Objective c 将NSManagedObject保持在CoreData NSManagedObject上下文块之外,objective-c,ios,xcode,core-data,nsmanagedobject,Objective C,Ios,Xcode,Core Data,Nsmanagedobject,我使用a helper类获取一个块,其中包含NSManagedObjectContext + (void)openTheDocumentAndPerformBlock:(completion_handle_t)completionBlock; 现在我想让其中一个NSManagedObject在块之外,因为我想不断地与它交互。如果我不能把它保存在ViewController中,每当我需要它的时候,我都必须查询它,这将非常麻烦 1,我可以通过segue将NSManagedObject传递给另一个V

我使用a helper类获取一个块,其中包含NSManagedObjectContext

+ (void)openTheDocumentAndPerformBlock:(completion_handle_t)completionBlock;
现在我想让其中一个NSManagedObject在块之外,因为我想不断地与它交互。如果我不能把它保存在ViewController中,每当我需要它的时候,我都必须查询它,这将非常麻烦

1,我可以通过segue将NSManagedObject传递给另一个VC吗?
2、UIManagedDocument是否必须在附加这些内容时始终打开?

3,我可以在块外编辑NSManagedObject并将其保存在块中吗

如果我正确理解了您的问题,您只需要在类(视图控制器类)中使用类型为
NSManagedObject
的实例变量,这样您就可以将在块中查询的托管对象分配给该变量。你可以在任何地方使用它。
至于你的其他问题:
1.希望以下代码片段能够正常工作: 在目标视图控制器类中,声明一个实例变量以存储传递的对象

@property (strong) NSManagedObject *container;
在源代码视图控制器的
prepareforsgue:
方法中,获取目标vc并传递托管对象:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    UIViewController *destVC = [segue destinationViewController];
    [destVC setValue:<managed object from block> forKey:@"container"]
}
-(void)prepareforsgue:(UIStoryboardSegue*)分段发送方:(id)发送方{
UIViewController*destVC=[segue destinationViewController];
[destVC setValue:forKey:@“container”]
}
是的,您可以在块内外使用NSManagedObject,只要它与您正在使用的托管对象上下文相同


我不知道你的第二个问题的答案。

是的,thx很多……因此,我们可以将NSManagedObject保存在块之外。但是我们不能在块之后立即使用它(在代码方面)。。。我们需要等待一段时间,直到区块完成?是的。如果您的逻辑需要完成,请选择“是”。