作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 iOS 应用程序中使用 parse.com 将数据存储到解析云服务。我在查询嵌套对象时遇到问题。我有以下数据模型:
“游戏”类
包含“赢家”
"winners"是 NSDictionary
的数组,字典中的每一项都是 1 Player 到 N Powers 的映射
playerPowers 值为 PFObject 数组 (权力目前只有一个名字)为键:对象 ID 玩家(PFObject)
对于每个获胜者,我在“获胜者”(可以有多个获胜者)中添加 NSDictionary
对象,像这样:
NSDictionary * winnerWithPowers = [NSDictionary dictionaryWithObject:tempPowers
forKey:[aWinnerPFObject objectId]];
[newGame addObject:winnerWithPowers forKey:@"winners"];
PFObjects
的数组(权力)也在服务器上。当我查询“获胜者”时,我想检索
全部 填充的数据,所有获胜者及其各自的权力
PFObjects
连同他们的所有数据。当我查询“获胜者”时,每个权力的详细信息
PFObject
不完整(key:name 的值为 null)。以下是查询,然后是打印结果的代码,然后是包含两个获胜者的字典的输出:
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];
}
}];
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 = (
"<Power:OlJfby1iuz:(null)> {\n}", // problem is {\n}. Data exists on server but not in local structure after query
"<Power:eQkMUThGOh:(null)> {\n}" // ditto
);
}
最佳答案
当您检索到 PFObject
(游戏)与其他 PFObjects(Powers 数组)相关,这些 Powers 的值不会被检索。您将必须在后续获取请求中获取这些 Power 的所有值。
从解析文档:
By default, when fetching an object, related PFObjects are not fetched. These objects' values cannot be retrieved until they have been fetched like so:
PFObject *post = [fetchedComment objectForKey:@"parent"];
[post fetchIfNeededInBackgroundWithBlock:^(PFObject *object, NSError *error) {
NSString *title = [post objectForKey:@"title"];
}];
[PFObject fetchAllIfNeeded:(NSArray *)myPowers];
fetchAllIfNeededInBackground:
如果您希望它是异步的。
关于ios - 如何将 PFQuery 用于存储为 NSDictionary 值的 PFObject 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14408820/
我是一名优秀的程序员,十分优秀!