Передать свойство только для чтения другому классу - PullRequest
0 голосов
/ 21 апреля 2019

В 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, компилятор не разрешает мне назначать, потому что он только для чтения.

Каков наилучший способ сделать это? Должен ли я просто сделать это без чтения или иметь какую-то слабую ссылку? Я заблудился с такими вещами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...