我正在使用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];
}
答案 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}}
希望有所帮助。