Вопрос о managedObjectContext - PullRequest
1 голос
/ 12 мая 2010

У меня есть приложение, которое является UITabBarController, я определил два подпредставления

В обеих вкладках атрибут Class в Инспекторе идентификации установлен в UINavigationController.

Теперь мне удалось продвинуться дальше с моим кодированием после ОЧЕНЬ ДЛИННЫХ испытаний.

- (void)viewDidLoad {
[super viewDidLoad];

myAppDelegate *appDelegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;

{



  NSError *error = nil;
  NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
  [fetchRequest setEntity:[NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext]];
  NSArray *fetchedItems = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

  NSEntityDescription *entityDesc =
  [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext];

  // replace the old data with new. this DOESNT WORK
  if (fetchedItems.count > 0)
  {
   Usr *newUsr;
   for (newUsr in fetchedItems)
   {
    if ([newUsr.name isEqualToString:@"Line One"])
    {

     newUsr.uName = @"Line One (new)";

    }
   }
  }

  //add a new default data. THIS ADDS DATA TO MY TABLEVIEW BUT IT DOESNT SAVE THEM TO THE SQLITE
  User *addedDefaultdata = nil;
  addedDefaultdata = [[User alloc] initWithEntity:entityDesc insertIntoManagedObjectContext:self.managedObjectContext];
  addedDefaultdata.name = @"Added new 1";
  [addedDefaultdata release];
 }


NSError *error = nil;
if (![User.managedObjectContext save:&error]) {

    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

}

и мой appdelegate выглядит так:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

 [application setStatusBarStyle:UIStatusBarStyleBlackOpaque];


 [window addSubview:navigationController.view];
 [window makeKeyAndVisible];

}

теперь я не могу запросить "пользователя" вообще! хотя я не получаю ошибок или предупреждений!

Любые предложения будут высоко оценены!

Спасибо

1 Ответ

0 голосов
/ 12 мая 2010

Возможно, вы спрашиваете, как обновить CoreData?

Если это так, вам нужно использовать метод save: для NSManagedObjectContext, например:

NSError *error;
[managedObjectContent save:&error];
if (error) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...