2015-09-15 82 views
4

我是新來的ios開發,我最近發現一個教程,建立一個高音揚聲器像使用解析後端ios應用程序。我目前的設置是使用swift 2.0的Xcode 7.1,本教程是在舊版本的swift上完成的,所以我必須調整一些swift語法才能使其工作。我做得很好,直到我打下面的錯誤,分析查詢錯誤findObjectsInBackgroundWithBlock

func loadData(){ 
    timelineData.removeAllObjects() 
    var findTimelineData:PFQuery = PFQuery(className: "Tweet") 

    findTimelineData.findObjectsInBackgroundWithBlock{ 
     (objects:[AnyObject]?, error:NSError?) -> Void in 
     if (error == nil && objects != nil){ 
      for object:PFObject! in objects!{ 
       self.timelineData.addObject(object) 
      } 
      let array:NSArray = self.timelineData.reverseObjectEnumerator().allObjects 
      self.timelineData = array as! NSMutableArray 
      self.tableView.reloadData() 
     } 

    } 

在這裏,我試圖訪問/存儲的所有數據解析表/班到一個數組。而編輯器在抱怨關閉參數(對象:[AnyObject]?錯誤:NSError?) - >太虛在幾次嘗試之後,

  1. (對象:[AnyObject]!錯誤:NSError !) - >空隙中
  2. (對象:[AnyObject],錯誤:NSError) - >空隙中
  3. (對象:[AnyObject] ?,錯誤:NSError) - >在
  4. (對象空隙: [AnyObject],錯誤:NSError) - >無效

我試過的所有選項都給了我同樣的錯誤: '([AnyObject] !, NSError!) - > Void'不能轉換爲'PFQueryArrayResultBlock?'其實對於(對象:[AnyObject] ?,錯誤:NSError?) - > void in(我認爲最有意義),編輯器會崩潰,如果我運行代碼,我會得到一個seg fault 。

有沒有人遇到類似的問題?或知道一個修復?

非常感謝您的幫助。

回答

14

嘗試更改[AnyObject]?[PFObject]?。這似乎是Swift 2.0所要求的。

所以不是:

findTimelineData.findObjectsInBackgroundWithBlock { 
    (objects:[AnyObject]?, error:NSError?) -> Void in 

用途:

findTimelineData.findObjectsInBackgroundWithBlock { 
    (objects:[PFObject]?, error:NSError?) -> Void in 

你還需要改變你的遍歷所有數組對象,因爲他們現在已經PFObject

+1

謝謝格林威爾!這似乎擺脫了錯誤。到下一個。 =] –

+0

璀璨,我在那條線上遇到了分割錯誤,這個問題解決了! –