Ошибка добавления объектов в PFRelation, как это сделать?
Я пытаюсь разобраться с PFRelation в разборе. У меня есть класс под названием "girlBio", в котором хранится информация о девушках, и класс "вещи", в котором хранится информация о предметах. код ниже:
PFObject *item = [PFObject objectWithClassName:@"stuff"];
item[@"Name"] = @"PS3";
PFObject *girl = [PFObject objectWithClassName:@"girlBio"];
girl[@"Name"] = @"Jessica";
PFObject *girl2 = [PFObject objectWithClassName:@"girlBio"];
girl2[@"Name"] = @"Cindy";
PFRelation *relation = [item relationForKey:@"owners"];
[relation addObject:girl];
[relation addObject:girl2];
[item saveInBackground];
--------------------------------- обновление тоже пробовал это ------------- ------------
PFObject *item = [PFObject objectWithClassName:@"stuff"];
item[@"Name"] = @"PS3";
PFObject *girl = [PFObject objectWithClassName:@"girlBio"];
girl[@"Name"] = @"Jessica";
[item saveInBackground];
[girl saveInBackground];
PFRelation *relation = [item relationForKey:@"owners"];
[relation addObject:girl];
[item saveInBackground];
Поэтому я хочу, чтобы этот элемент принадлежал нескольким девушкам, однако, когда я запускаю программу, я получаю эту ошибку:
Ошибка: невозможно добавить не указатель на отношение (код: 111, версия: 1.6.0)
Может кто-нибудь помочь, пожалуйста?
Спасибо
1 ответ
Вам нужно сохранить ваши объекты girl1
а также girl2
прежде чем сохранить отношения. В противном случае, даже если ваша локальная копия знает о них, сервер не знает.
ОБНОВИТЬ
Вы также должны убедиться, что girl1
а также girl2
а также item
завершить, прежде чем сохранить отношения. Однако вы, вероятно, не хотите запускать эти сохранения в основном потоке, поэтому я бы порекомендовал что-то вроде этого (которое я только что запустил без проблем):
dispatch_async(dispatch_get_main_queue(), ^{
PFObject *item = [PFObject objectWithClassName:@"stuff"];
item[@"Name"] = @"PS3";
PFObject *girl = [PFObject objectWithClassName:@"girlBio"];
girl[@"Name"] = @"Jessica";
[item save];
[girl save];
PFRelation *relation = [item relationForKey:@"owners"];
[relation addObject:girl];
[item saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
//Do something after the last save...
}];
});