如何在 iOS 中保存 PFObject 列表?
Posted
技术标签:
【中文标题】如何在 iOS 中保存 PFObject 列表?【英文标题】:How to save a list of PFObject in iOS? 【发布时间】:2014-04-13 03:20:19 【问题描述】:我正在使用 Parse.com
服务作为我的云在 ios 上工作。
我当前的任务是尝试从 Facebook 检索朋友列表,然后将该列表保存到解析云。
我可以使用 parse.com 的示例/教程为 PFObject
保存一个 PFObject
,但是当我尝试保存我的对象列表时它不起作用。
那么你能解释一下我的原因吗?在我的情况下,解决方案是什么?
我的代码:
for (NSDictionary<FBGraphUser>* friend_ in friends)
NSLog(@"I have a friend named %@ with id %@", friend_.name, friend_.id);
PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"];
NSLog(@"Add ID");
gameScore[@"id"] = friend_.id;
NSLog(@"Name");
gameScore[@"name"] = friend_.name;
NSLog(@"Birthday");
gameScore[@"birthday"] = friend_.birthday;
[gameScore saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
if (!error)
NSLog(@"Sample sending completed");
];
【问题讨论】:
具体是什么不起作用?你收到 Parse 的错误了吗? 什么都没有。我也尝试检查数据浏览器,但没有数据发送到那里 saveInBackgroundWithBlock 返回成功还是错误? 感谢 Brandon,它甚至什么都不返回 【参考方案1】:在 Parse 中使用多个请求保存多个对象时,我也遇到了这个问题。您应该尝试以下请求,它允许您通过单个请求保存 PFObject * 数组:
+ (void)saveAllInBackground:(NSArray *)objects block:(PFBooleanResultBlock)block
【讨论】:
抱歉,我找不到 saveAllInBackground 方法? saveAllInBackground 是一个类方法(你可以用 +(void) 代替 -(void)),它的文档在这里:parse.com/docs/ios/api/Classes/PFObject.html#//api/name/…: -- 像这样称呼它:[ PFObject saveAllInBackground:@[object1,object2] block:^(BOOL 成功, NSError *error) /*完成代码 */ ];【参考方案2】:PFObject *gameScore = [PFObject objectWithClassName:@"GameScore”];
[gameScore setObject:[NSNumber numberWithInt:1337] forKey:@"score"];
[gameScore setObject:@"Sean Plott" forKey:@"playerName"];
[gameScore setObject:[NSNumber numberWithBool:NO] forKey:@"cheatMode"];
[gameScore save];
【讨论】:
以上是关于如何在 iOS 中保存 PFObject 列表?的主要内容,如果未能解决你的问题,请参考以下文章
最终使用 PFFile(解析本地数据存储)保存在 PFObject 上?
在 iOS 7 中从 Parse PFObject 中提取数据