Ошибка добавления объектов в 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...
    }];
});
Другие вопросы по тегам