将只读属性传递给另一个类

时间:2019-04-21 17:25:49

标签: ios objective-c uiviewcontroller

在目标C中,我像这样实现了Core DatamanagedObjectContext:

//MyViewController1.h

@interface MyViewController1 : UIViewController 
{
    NSManagedObjectContext *_managedObjectContext;
}
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;

//MyViewController.m

@implementation MyViewController1

@synthesize managedObjectContext = _managedObjectContext;

- (NSManagedObjectContext *) managedObjectContext
{
...
}

(是的,我知道我的代码已经过时,这是一个旧项目)。

我想将此managedObjectContext作为参数传递给另一个UIViewController,以便它可以保留在managedObjectContext上。我将如何申报财产?目前,在MyViewController2中,我声明了与在MyViewController1中相同的方法:

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;

但是当我在self.managedObjectContext = managedObjectContextParameter的构造函数中执行MyViewController2.m时,编译器不会让我分配,因为它是只读的。

做到这一点的最佳方法是什么?我应该只做只读操作还是做些弱引用吗?我迷失了这些东西。

0 个答案:

没有答案