В Objective C у меня есть данные Core Data managedObjectContext, реализованные так:
//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
, компилятор не разрешает мне назначать, потому что он только для чтения.
Каков наилучший способ сделать это? Должен ли я просто сделать это без чтения или иметь какую-то слабую ссылку? Я заблудился с такими вещами.