2014-10-20 49 views
1

我發現了一個有趣的錯誤XCode中6個成員的:UICollectionView沒有一個名爲dequeueResuableCellWithReuseIdentifier

UICollectionView does not have a member named dequeueResuableCellWithReuseIdentifier

在第二行(「讓細胞...」)將出現在以下的錯誤功能:

override func collectionView(collectionView: UICollectionView?, cellForItemAtIndexPath indexPath: NSIndexPath?) -> UICollectionViewCell { 
     // Configure the cell 

     let cell:FightCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as FightCollectionViewCell 
     let battle = self.lobbyData.objectAtIndex(indexPath!.row) as PFUser 

     PFCloud.callFunctionInBackground("getOnlineUsers", withParameters: [:], target: nil, selector: "block:") 

      func block(users: NSArray, error:NSError!){ 
       if(error == nil){ 

        let user:PFUser = (users as NSArray).lastObject as PFUser 
        let avatarObject = user["avatar"] as PFObject! 

        avatarObject.fetchInBackgroundWithBlock { 
         (object: PFObject!, error: NSError!) in 
         if error == nil { 
          let imageFile = object["image"] as PFFile 
          imageFile.getDataInBackgroundWithBlock { 
           (imageData: NSData!, error: NSError!) -> Void in 
           if error == nil { 
            let image = UIImage(data:imageData) 
            cell.avatarImageView.image = image 
           } 
          } 
         } 
        } 
       } 
      } 


     return cell 
    } 

此代碼沒有在XCode 6測試版中拋出錯誤。爲什麼XCode現在對這行代碼有問題?我是iOS開發新手,所以任何幫助將不勝感激。

謝謝!

回答

2

通過您的方法簽名判斷,我的猜測是您的錯誤信息是真的是UICollectionView? does not have a member named dequeueResuableCellWithReuseIdentifier

UICollectionView?是與UICollectionView完全不同的類型。這是一個optional,它絕對沒有與UICollectionView一樣定義的方法!

看着the API,該委託方法未被定義爲可選項。嘗試刪除? s。

原因是必須手工檢查整個Cocoa API(大量)以選擇一致性,這仍然是一個持續的過程。這導致Xcode版本之間的API更改。

相關問題