Как передать NSManagedObjectContext через объекты

#objective-c

#objective-c

Вопрос:

Мне интересно, какой лучший способ передать NSManagedObjectContext в приложении IOS. Раньше я добавлял свойство NSManagedObjectContext с сохранением (не присваивать) и создавал пользовательский метод инициализации… но я не уверен, что это лучшая практика. Вот пример класса, которому нужен NSManagedObjectContext.

 @interface CatSelectVC : UIViewController {
    NSArray *catList;
    NSManagedObjectContext *context;
}
@property(nonatomic,retain) NSManagedObjectContext *context;
-(CatSelectVC*)initWithContext:(NSManagedObjectContext*) theContext;
  

и я реализую пользовательский init, просто присваивая theContext self.context.
синтезируется контекст…

 -(CatSelectVC*)initWithContext:(NSManagedObjectContext*)theContext{
  self = [super init];

  if(self !=nil){ 
     self.context = theContext;
  }

  return self;
}
  

Хороший ли это метод? как насчет сохранения контекста? было бы лучшим решением использовать assign вместо retain для свойства контекста?

Ответ №1:

Я обычно получаю контекст из переданного объекта.

 NSManagedObjectContext *context = self.currentExercise.managedObjectContext;
  

Я думаю, вы определенно хотите сохранить контекст.

Редактировать:

Я бы посоветовал книгу Маркуса Зарры «Основные данные» или видео iDeveloperTV с Маркусом Заррой и Скотти.