2015-07-21 28 views
1
if var findPublisher:PFQuery = PFUser.query(){ 
    findPublisher.whereKey("objectId", equalTo:quote.objectForKey("publisher").objectId)//error here 
    } 

我收到任何可選類型'任何對象'的錯誤值?沒有解開。我不知道我做錯了什麼。我是一個初學者,所以請忍受我:)可選類型與解析和Swift

+0

您是否嘗試使用Parse中的當前登錄用戶或數據庫中的任何用戶? – Tillson

+0

當前用戶登錄解析 –

回答

0

這是一個真正的地方,你會給每個報價一個用戶對象的指針,然後你可以得到報價的出版商沒有額外的查詢。但是,如果你想這樣做,這樣,你會怎麼做:

let query = PFUser.query()! 
query.whereKey("objectId", equalTo: (quote["publisher"] as! String)) // You can unwrap it as long as you are sure that quote is not nil, and the publisher is set. 
query.getFirstObjectInBackgroundWithBlock({ (user: PFObject?, error: NSError?) in 
    // check for errors and use the object 
}) 

這樣做也是這樣產生解析security issues,因爲任何人都與你的應用程序的ID和密鑰可以得到一個完整的用戶列表。

0
let findPublisher = PFUser.query()! 
    findPublisher.whereKey("objectId", equalTo: (quote["publisher"] as! String)) 
     findPublisher.findObjectsInBackgroundWithBlock{ 
      (objects:[AnyObject]?, error:NSError?)->Void in 

      if error == nil{ 
       let user:PFUser = (objects as NSArray).lastObject as! PFUser//error here 
       cell.publisherLabel.text = user.username 
     } 
    } 

我最終得到一個錯誤,說AnyObject不能轉換成NSArray?

+0

使用「getFirstObjectInBackgroundWithBlock。」就像我的例子。你可以這樣做,因爲只有一個用戶會擁有每個ID。此外,這應該是我的例子的評論,而不是一個單獨的答案。 – Tillson