[英]How to save array of objects using parse.com server iOS?
我使用parse.com服务器发送和检索我的iOS应用程序数据。 我想保存歌曲列表,每首歌曲都有以下属性(标题,艺术家,专辑)。 我的代码片段在这里;
-(IBAction)saveSongsData:(id)sender {
PFObject *newPlayer = [PFObject objectWithClassName:@"Players"];
/*[newPlayer addObjectsFromArray:self.songsArrray forKey:@"songs"];
here i got the exception, if i uncomment it*/
[newPlayer setObject:self.txtPlayerName.text forKey:@"playerName"];
[newPlayer setObject:self.txtPlayerDesc.text forKey:@"playerDescription"];
[newPlayer setObject:self.txtPlayerPass.text forKey:@"playerPassword"];
NSString *objectId = [newPlayer objectId];
[[NSUserDefaults standardUserDefaults]setObject:objectId forKey:@"id"];
[newPlayer saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (!error) {
}
else {
}
}];
}
self.songsArray
是一个具有以下属性的歌曲对象数组;
标题,艺术家,专辑。
但是当我尝试使用这行代码保存我的歌曲数据时。
[newPlayer addObjectsFromArray:self.songsArrray forKey:@"songs"];
我有一个例外,这是消息: -
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'PFObject值必须可序列化为JSON'
请帮助我,如何以JSON格式将我的歌曲数据发送到服务器。 谢谢。
您可以尝试以下选项之一:
1)如果要保存一个Parse对象数组,可以使用以下命令:
[PFObject saveAllInBackground: self.songsArray block: YOUR_BLOCK];
2)您可以创建Parse.com关系:
PFObject *newPlayer ...
PFRelation *relation = [newPlayer relationforKey:@"songs"];
[relation addObject:song]; // add as many songs as you want.
[newPlayer saveInBackground];
使用Parse时,您的数组和字典只能包含可以序列化为JSON的对象。 看起来好像self.songsArray
包含无法自动转换为JSON的对象。 你有两个选择 - 使用与Parse兼容的对象,或者正如有人在评论中建议的那样,制作你的歌曲PFObjects
,然后通过关系将它们与玩家联系起来。
只需保存objectId NSString
。
然后回去,做一些像这样的花哨的东西。
[query2 whereKey:PF_CHAT_SETID equalTo:[PFObject objectWithoutDataWithClassName:PF_SET_CLASS_NAME objectId:setId_]];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.