Как использовать PFQuery для массива PFObject, хранящегося как значения NSDictionary
используя parse.com в приложении iOS для хранения данных в облачном сервисе parse. Я'У меня возникли проблемы с запросом вложенных объектов. У меня есть следующая модель данных:
Учебный класс "Игра" содержит "Победители «»
победители» это массивNSDictionary
каждый элемент в словаре является отображением 1 игрока на N держав
Значение playerPowers являетсямассив объектов PFObjects (полномочия имеют только имя в настоящее время) дляКлюч: ObjectId игрока (PFObject)
Для каждого победителя я добавляю впобедители» (может быть несколько победителей)NSDictionary
объект, вот так:
NSDictionary * winnerWithPowers = [NSDictionary dictionaryWithObject:tempPowers
forKey:[aWinnerPFObject objectId]];
[newGame addObject:winnerWithPowers forKey:@"winners"];
Для каждого элемента в словаре ключ является существующим objectId игрока, а значение является массивомPFObjects
(полномочия) также на сервере. Когда я запрашиваю "победители "я"хотел бы получитьвсе данные заполнены, все победители и их соответствующие силыPFObjects
со всеми их данными. Когда я запрашиваю "победители» детали каждой властиPFObject
является неполным (значение для ключа: имя равно нулю). далее идет запрос, затем код, который печатает результаты, после чего выводится словарь, содержащий два победителя:
// ВviewWillAppear:
PFQuery * gamesQuery = [PFQuery queryWithClassName:@"Game"];
[gamesQuery orderByDescending:@"createdAt"];
[gamesQuery findObjectsInBackgroundWithBlock:^(NSArray * theGames, NSError * error) {
if (error) {
NSLog(@"ERROR: There was an error with the Query for Games!");
} else {
_gamesPF = [[NSMutableArray alloc] initWithArray:theGames];
[_tableView reloadData];
}
}];
// в виде таблицыcellForRowAtIndexPath: метод (это 'это мой собственный TableViewController)
NSArray * testArray = [[_gamesPF objectAtIndex:row] objectForKey:@"winners"];
if ([testArray count] > 0) {
// print contents of first dictionary winners entry
NSLog(@"TestDictfromPF %@", [testArray objectAtIndex:0]);
}
Журнал:
2013-01-18 09:42:26.430 GamesTourney[20972:19d03] TestDictfromPF {
jchtlqsuIY = (
" {\n}", // problem is {\n}. Data exists on server but not in local structure after query
" {\n}" // ditto
);
}