首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析iOS SDK:如何在创建PFObject的同时复制PFObject

解析iOS SDK:如何在创建PFObject的同时复制PFObject
EN

Stack Overflow用户
提问于 2014-07-10 20:58:47
回答 1查看 575关注 0票数 1

场景=我有一个PFQueryTableViewController,它将显示用户彼此发送的消息。为了在对话之间创建关系,我将一个字符串保存到名为"messageID“的对象中。我希望"messageID“是first message的"objectId”的确切副本,以便使对话具有时间顺序的意义,我将从"createdAt“的周界开始'orderByAscending‘。

问题=如何从第一条消息中设置(复制) "objectId“?

我想做的是.

代码语言:javascript
复制
PFObject *message = [PFObject objectWithClassName:@"Message"];
[message setObject:[NSString stringWithFormat:@"%@", self.messageTextView.text] forKey:@"message"];
[message setObject:[PFUser currentUser][@"userID"] forKey:@"senderID"];
[message setObject:self.selectedFriendID forKey:@"receiverID"];

//RIGHT HERE
[message setObject:message.objectId forKey:@"messageID"];

[message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {

}

这样做的想法是,所有在PFQueryTableViewController中查询的消息都将属于一起,并按顺序排列,因为它们都具有相同的"messageID“。

这给了我一个错误:“不能对PFObject上的键或值使用零。值使用NSNull。”

如果有人能为我指明正确的方向,让我做到这一点,我会爱你的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-10 22:53:39

错误消息告诉您正在发生什么-您正在尝试在messageID键中存储一个零值,这是不允许的。

发生这种情况的原因是,只有在保存对象之后才分配objectId --新分配的对象还没有值。

因此,您可以等到saveInBackgroundWithBlock完成后再检索objectId,也可以使用另一个ID。

我建议您将messageID列更改为字符串并使用UUID。然后,您可以在保存会话中的第一条消息之前创建一个新的UUID。您可以使用

代码语言:javascript
复制
NSString *messageID=[[NSUUID UUID] UUIDString];
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24686179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档