我无法在Parse中更新记录;错误:“找不到更新的对象(代码:101,版本:1.2.16)”

时间:2014-03-05 06:27:57

标签: ios parse-platform record insert-update

我正在使用Parse作为我的原生iOS应用程序之一的后端。 我无法在Parse中更新表上的记录。首先,我查询要更新它的对象。因此,“objects”数组返回1条记录但是当我想要更新它时,我得到以下错误;

“找不到更新的对象(代码:101,版本:1.2.16)”

那么您认为我无法更新Parse中的记录? (下面是我的代码)

谢谢, 即

PFQuery *query = [PFQuery queryWithClassName:@"askedFriends"];
[query whereKey:@"questionID" equalTo:aqDt.questionID];
[query whereKey:@"fbID" equalTo:FbId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

NSArray *postArray = objects;
PFObject *post = postArray.lastObject;
[post setObject:@"sentReply" forKey:btnSelection];
[post saveInBackground];
}

5 个答案:

答案 0 :(得分:13)

我遇到了同样的问题,而且它是特定Class表的ACL列。确保在ACL列中具有类似的功能

{"*":{"read":true},"tyb5CcKwBU":{"write":true,"read":true}}

“*”允许所有人阅读。 您可以使用

之类的东西设置客户端
ParseACL acl = new ParseACL(<YourObject>);
acl.setPublicReadAccess(true);

答案 1 :(得分:2)

Parse中的错误代码101表示:

  

101:对象不存在,或密码不正确。

显然,你的对象存在,因为postArray返回1条记录,所以我们应该看看与密码相关的东西。 也许您的“askFriends”对象有一个PFACL对象,如果您没有使用PFUser登录,则禁用此对象的版本。

在Parse网站上,转到仪表板,然后转到数据浏览器并选择“askFriends”类。

有一个ACL列,您应该检查它。

答案 2 :(得分:1)

错误:“找不到更新的对象(代码:101,版本:1.2.16)”当您尝试保存用户没有ACL访问权限的对象时附加。

为了让用户更改对象,您需要在创建对象时设置PFACL权限:

对于特定用户:

PFObject *object = /*the object you want to save*/
NSString *userID = /*the objectID of the user you want to let perform modifications later*/
PFACL *groupACL = [PFACL ACL];
[groupACL setWriteAccess:YES forUserId:userID];
object.ACL = groupACL;

对于所有用户:

PFObject *object = /*the object you want to save*/
PFACL *groupACL = [PFACL ACL];
[groupACL setPublicWriteAccess:YES];
object.ACL = groupACL;

答案 3 :(得分:0)

使用createWithoutData设置引用的对象帮助我解决了这个问题。

myObject.put("item", ParseObject.createWithoutData(<SUB CLASS>.class, <Your object item>));
myObject.saveInBackground();

答案 4 :(得分:0)

我通过更改我希望能够修改为以下内容的解析对象上的ACL字符串来修复此问题,它解决了我的问题:

{"*":{"read":true,"write":true}}

希望有所帮助。