2015-02-09 76 views
0

我一直有一些麻煩,試圖保存一個objectId上的變量,然後使用這個變量做指針查詢。保存PFPointer在一個變量

我有以下代碼:

var currentObject : PFObject? 
var objId : NSString? 




override func viewDidLoad() { 
    super.viewDidLoad() 


    if let object = currentObject? { 
     subjectName.text = object["name"] as? String 
     roomLabel.text = object["room"] as? String 
     teacherLabel.text = object["teacher"] as? String 


    } 

    var query = PFQuery(className:"Calendar") 
    query.whereKey("subjectId", equalTo: objId) 
    query.findObjectsInBackgroundWithBlock { 
     (objects: [AnyObject]!, error: NSError!) -> Void in 
     if error == nil { 
      // The find succeeded. 
      NSLog("Successfully retrieved \(objects.count) scores.") 
      // Do something with the found objects 
      for object in objects { 
       NSLog("%@", object.objectId) 
      } 
     } else { 
      // Log details of the failure 
      NSLog("Error: %@ %@", error, error.userInfo!) 
     } 
    } 







    // Do any additional setup after loading the view. 
} 

本身顯示某一物體在一些標籤中的內容的代碼。 我想將對象ID保存在objId變量中。 似乎沒有錯誤,但是當我運行代碼時,出現以下錯誤:

error =「指針字段subjectId需要指針值」;

我在做什麼錯?

回答

1

subjectId是一個指針,但查詢正在對一個字符串進行測試。 (它並不是一個令人驚訝的錯誤,因爲這個變量被命名爲誤導......以Id作爲後綴,我們期望它是一個字符串,subjectPointer會是一個更好的後綴)。

要修復,請使用objectWithoutDataWithClassName:objectId將ID變成指針。使用objId作爲objectId,並且類名是包含具有該id的對象的表的名稱(希望您的表被命名爲「Subject」)。

編輯 - 這裏是在SWIFT(不是我的語言要麼)我最好的拍攝

let pointer = PFObject(withoutDataWithClassName:"Subject" objectId:objId) 
query.whereKey("subjectId", equalTo:pointer) 

我用「主體」作爲表名,但你必須替換用表的真實名稱包含id爲objId的對象。

+0

你能舉個例子說明如何做到這一點?我讀了關於objectWithoutDataWithClassName:objectId的文檔,但我不明白它是由Objective C寫的。 – 2015-02-09 22:29:56

+0

@OmarDlhz - 給它最好的拍攝效果。 – danh 2015-02-09 23:31:02