Я создал два объекта в моей модели: Учетная запись и Друг - где в 1 Учетной записи будет много Друзей. Я также создал эти два объекта в коде.
Я использую UITableView, чтобы показать свои учетные записи (все в порядке), и использую новый UIViewController, чтобы добавить новую запись. В новой записи я добавляю данные об учетной записи и получаю друзей из API. При переходе от UITableView к новому UIViewController я создаю пустой объект Account: UIViewController.account = account;
Теперь сложная часть. При сохранении этих данных я делаю следующее:
// Configure the new account with information from the form.
[account setUsername:[profileDict objectForKey:@"the_name"]];
[account setPassword:password.text]; // from formfield
[account setCreationDate:[NSDate date]];
// Commit the change.
NSError *error;
if (![account.managedObjectContext save:&error]) {
// Handle the error.
NSLog(@"save error");
}
NSManagedObjectContext *context = [account managedObjectContext];
for(NSArray *names in usernameArray) //usernameArray holds my Friends
{
friend = [NSEntityDescription insertNewObjectForEntityForName:@"Friend" inManagedObjectContext:context];
[account addReplyAccountsObject:friend];
[friend setName:[names objectAtIndex:0]];
[friend setPicUrl:[names objectAtIndex:1]];
// Commit the change.
NSError *error;
if (![context save:&error]) {
// Handle the error.
NSLog(@"save error");
}
}
Теперь это похоже на работу - однако иногда мое приложение вылетает с ошибкой шины - обычно на устройстве, а не на симуляторе. Это правильный способ сохранить аккаунт и много друзей одновременно? Кроме того - есть причина, по которой я могу получить ошибку в автобусе? Кажется, это происходит, когда есть много друзей ....