2016-01-25 37 views
2

爲什麼我無法將來自Object中的「ObjectId」作爲一個String在swift中呈現,即使它自然是一個字符串?這裏是邏輯我一個嘗試使用:如何從解析中的對象中獲取ObjectId並將其作爲字符串在swift中呈現

//MARK: Fetch ObjectId Strings From Parse 
    func fetchObjectIdString() { 

     let query = PFQuery(className: "Books") 
     query.whereKey("genreName", equalTo: self.genreName) 
     query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in 

      if error == nil { 

       if let objects = objects as [PFObject]! { 

        for oneObj in objects { 

         let ObjectIdFromParse = oneObj["objectId"] as! String 
         let SingleObjectId = SixthBook() 
         SingleObjectId.objectIdString = ObjectIdFromParse 
         self.arrayOfObjectId.append(SingleObjectId) 
        } 
       } 
      } else { 

       // Log details of the failure 
       print("Error: \(error!) \(error!.userInfo)") 
      } 
     } 
    } 

也能正常工作的所有其他字符串列除的ObjectId我解析的對象。它每次都會引發異常錯誤。爲什麼是這樣?

回答

1

使用oneObj.objectId而不是你在上面的代碼中嘗試過的。

改線let ObjectIdFromParse = oneObj["objectId"] as! String

let ObjectIdFromParse = oneObj.objectId as! String

1

Parse documentation on PFObjects

objectIdcreatedAtupdatedAt被設置爲每PFObject屬性,所以你不使用[""]下標它們,但而不是通過你的對象達到.objectId.createdAt,.updatedAt

您也不需要強制向下轉換爲String,因爲objectId始終是一個String(如您所述)。但是,你確實需要打開可選的(說你知道這個objectId存在)。因此,正確的代碼行應該是:

let ObjectIdFromParse = oneObj.objectId! 
相關問題