2013-07-10 38 views
2

我得到了錯誤「錯誤:沒有找到對象的更新(代碼:101,版本:1.2.9)」parse.com澄清的ACL(沒有找到對象的更新)

有人告訴我,這個錯誤「通常會在當前用戶無權寫入相關對象的情況下返回。」

請幫我確保我瞭解ACL。我在我的委託下面的代碼:

PFACL *defaultACL = [PFACL ACL]; 
[defaultACL setPublicReadAccess:YES]; 
[PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES]; 

(1)這是否意味着,對於任何PFObject我在本屆會議期間創建,只有當前用戶將能夠更改該對象,除非我通過當前用戶的會話指定允許寫入權限的其他用戶? (2)我會使用下面的代碼(從解析文檔)做什麼?

PFObject *groupMessage = [PFObject objectWithClassName:@"Message"]; 

PFACL *groupACL = [PFACL ACL]; 

// userList is an NSArray with the users we are sending this message to. 

for (PFUser *user in userList) { 

    [groupACL setReadAccess:YES forUser:user]; 
    [groupACL setWriteAccess:YES forUser:user]; 
} 

groupMessage.ACL = groupACL; 

[groupMessage saveInBackground]; 

(3)現在假設我有一個全新的PFUser人,我希望能夠自己本屆會議期間編輯現有PFObject,但誰不包括在ACL中的現有對象。我怎樣才能讓該用戶編輯對象?我是否必須使用雲代碼將其添加到ACL列表中?代碼示例將不勝感激。

謝謝。

回答

0
  1. 是的,您列出的ACL提供當前用戶寫入訪問和全局讀取訪問。有了這個ACL,你需要明確地決定還有哪些人應該有寫權限。
  2. 這聽起來像你正在尋找一種角色爲你提供的動態羣體評估。如果您向角色對象(例如管理員角色)授予寫入權限,則在向角色添加或刪除用戶時,所有對象的權限都將受到影響(無需其他API調用)。
+0

感謝您澄清1&2。這兩點是爲了確保在潛入#3之前我有我的方位。 #3我不知道該怎麼做。重申一下,我正在談論的是讓剛剛添加爲PFUser的全新用戶可以寫入已有的PFObjects。情況是這樣的:在這些朋友創建賬戶之前,用戶可以在交談中包括Facebook朋友。我通過FacebookID跟蹤。當這些朋友註冊時,他們需要被授予對特定對話對象的寫入權限。我認爲爲每個對話創建一個角色並不實際。 – mkc842

-1

使用createWithoutData來設置引用的對象幫助我解決了這個問題。

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