2017-04-14 14 views
1

Heroku/Parseサーバーからusername = usernameSelectedの行を削除しようとしています。選択されたユーザー名はゼロではなく、サーバー上に存在します。何も間違っているようではなく、行全体を削除するのではなく、「オブジェクトが見つかりません」のみです。なぜHeroku/Parseの「オブジェクトが見つかりません」というエラーが迅速に返されますか?

let query = PFQuery(className: "Requests") 

query.whereKey("username", equalTo: usernameSelected) 
query.limit = 1 
query.findObjectsInBackgroundWithBlock({ (objects, error) in 
    if error != nil { 
    }else { 
     if let objects = objects { 
      for obj in objects { 
       obj.deleteInBackgroundWithBlock({ (success, error) in 
        activityIndicator.stopAnimating() 

        UIApplication.sharedApplication().endIgnoringInteractionEvents() 

        if error != nil { 
         self.alertDisplay("Error", message: error?.userInfo["error"] as! String) 
        }else { 
         self.alertDisplay("", message: "Styles Submitted..! Please wait for your next Style") 
        } 
       }) 
      } 
     } 
    } 
}) 
+0

どのブロックでエラーが発生していますか? findObjects ...またはdeleteInBackground ...? 2番目の場合は、削除するすべてのオブジェクトを取得していますか? –

+0

ちょっと考えました。このクラス/オブジェクトのACLをどのように設定しましたか? – toddg

+0

+ Lou Franco:deleteInBackgroundブロックは、オブジェクトが存在する間にエラー(オブジェクトが見つかりません)を返します。 – aijayy

答えて

0
  1. は自分のクラスで作成された行のACLのみ読み取り権限を持っているので、削除が失敗することができ

  2. あなたのクラスの読み取りと書き込みのアクセス許可をしていることを確認してください。法の下であなたのAppDelegateで、「didFinishLaunchingWithOptionsを」読み取りおよび書き込みの両方の権限を許可するには、行

がdefaultACL = PFACL()聞かせて表示されます。

//すべてのオブジェクトをデフォルトで非公開にする場合は、この行を削除します。 defaultACL.getPublicReadAccess =真

が、これは将来的にあなたがクライアント側からオブジェクトを削除することができるようにあなたが書き込み権限を持つすべての行を作成するのに役立ちます--- defaultACL.getPublicWriteAccess =真

を行を追加します。

関連する問題