簡體   English   中英

解析+ iOS:刪除操作后保存時出現101錯誤

[英]Parse + iOS: 101 error when saving after a delete operation

在我的iOS應用中,我有一個PFQueryCollectionViewController ,它顯示UserPhoto對象。 在收藏夾視圖單元上輕按可打開照片詳細信息頁面,用戶可在其中向照片添加評論。 直到我從集合視圖控制器(使用removeObjectsAtIndexPaths )或詳細信息視圖控制器(使用deleteInBackgroundWithBlock刪除 UserPhoto之前,此工作流程均能完美無誤地工作。

問題的范圍很廣。 當我在執行刪除操作后嘗試對任何現有對象(不僅僅是UserPhoto)執行任何類型的保存操作時,都會得到:

"[Error]: object not found for update (Code: 101, Version: 1.11.0)"

  • 我已經三重檢查了我是否要保存正確的對象,而不是剛剛刪除的對象
  • 我可以注銷要保存的對象,它們的格式正確。
  • 我嘗試保存的對象存在於“解析”儀表板上
  • 所有對象的ACL為公共讀+寫
  • 刪除后失敗的保存操作可以正常工作,因此執行保存的代碼沒有錯

delete操作后恢復save功能的唯一方法是完全退出應用程序。

我在這里死 謝謝。

源代碼

首先,一個簡單的函數用於遍歷collectionView中所選照片的​​數組並調用removeObjectsAtIndexPaths 盡管removeObjectsAtIndexPaths有點神秘(有限文檔),但我已經確認它會立即從Parse中刪除對象。

func deleteSelectedPhotos() {
var indexPaths = [NSIndexPath]()
    for image in self.selectedImages {
        let index = self.objects.indexOf({ (photo: AnyObject) -> Bool in
            return image == photo as! PFObject
        })
        let indexPath = NSIndexPath(forItem: index!, inSection: 0)
        indexPaths.append(indexPath)
    }
    self.removeObjectsAtIndexPaths(indexPaths)
}

這是照片詳細信息屏幕的刪除代碼:

func deleteUserPhoto() {
        currentPhoto.deleteInBackgroundWithBlock { (deleted: Bool, error: NSError?) -> Void in
            if let error = error {
                print("error deleting photo")
                print(error.localizedDescription)
            } else {
                if deleted == true {
                    self.delegate?.photoDetailVcDidDeletePhoto(self.currentPhoto)
                    self.navigationController?.popViewControllerAnimated(true)
                }
            }
        }
    }

底部附近的委托方法由PFQueryCollectionViewController調用,因此它可以loadObjects並更新UI以反映刪除。

我解決了這個問題。 在創建新的UserPhoto對象時,我將它們添加到父對象(“ Album的數組中,並保存了沒有完成塊的“ Album 我實際上並沒有使用數組(而是僅使用指向Album的指針查詢UserPhoto對象)。

當刪除代碼以將照片添加到未使用的陣列中時,我能夠再次更新並創建UserPhoto對象。 我懷疑錯誤是指尚未完成保存的Album對象(?)。

完全將Album留在更新UserPhotos的過程中似乎做到了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM