2010-11-30 4 views
2

Мне, наконец, удалось получить основные данные и начать понимать их. До сих пор я только что играл в оконном приложении с включенными основными данными, играя внутри файлов делегатов приложения.managedObjectContext в другом представлении

Но как я могу получить доступ к моему управляемому объекту извне делегата приложения, например, если у меня был подкласс UIView?

Надеюсь, вы сможете помочь, спасибо.

+0

Возможный дубликат [совместного использования NSManagedObjectContext и других классов обслуживания между вкладками iphone/ipad] (http://stackoverflow.com/questions/3437033/sharing-nsmanagedobjectcontext-and-other-service-classes-between-iphone-ipad- вкладки) – willcodejavaforfood 2010-11-30 16:52:19

+0

Также, вероятно, стоит упомянуть, что вы должны подумать дважды, прежде чем делиться управляемым объектом ObjectContext с подклассом UIView. UIView по своей сути являются представлениями и не должны напрямую обращаться к модели данных. Вероятно, вы хотите передать ссылку на контекст другому контроллеру представления, а затем передать ссылку определенного управляемого объекта (ов) на представление, но не фактический контекст. – Rog 2010-11-30 19:01:01

ответ

3

Попробуйте использовать

[[[UIApplication sharedApplication] delegate] managedObjectContext]; 

Чтобы избавиться от предупреждения, отлитый делегата в качестве фактического AppDelegate; например,

NSManagedObjectContext *context = [(YourAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 

EDIT:

После изменения любых данных, вам необходимо сохранить его. Вот метод, который я использую:

NSManagedObjectContext *moc = [self managedObjectContext]; 

NSError *error; 
if (![moc save:&error]) { 
    NSLog(@"Couldn't save current data in current method."); 
} 

Измените оператор журнала, как вы считаете нужным.

Смежные вопросы