PFObject子类获取“无法将类型'Match'的值转换为期望的参数类型'@noescape(AnyObject)throws - > Bool'”错误

问题描述:

我在调用indexOf对PFObject子类的数组时遇到以下错误。PFObject子类获取“无法将类型'Match'的值转换为期望的参数类型'@noescape(AnyObject)throws - > Bool'”错误

无法将类型的值 '匹配' 的预期参数类型 '@noescape(AnyObject)抛出 - >布尔'

我的课:

class Match: PFObject, PFSubclassing {XXXX} 

的方法,其中的错误正在发生:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) 
{ 
    //dismiss the image picker 
    self.dismissViewControllerAnimated(true) {() -> Void in 
     //wait for the dismissal in case there is an error to show 
     let recordedVideofileURL = info[UIImagePickerControllerMediaURL] as? NSURL 

     if let recordedVideofileURL = recordedVideofileURL 
     { 
      //upload the file to S3 
      do 
      { 
       let uploadRequest = try S3UploadManager.uploadFile(self.match!.localPathToVideo()!) 

       self.match!.saveEventually({ (success: Bool, error: NSError?) -> Void in 
        if (success) 
        { 
         // The object has been saved. 
         self.matchesController.loadObjects() 

         //set up progress tracking for the upload 
         uploadRequest.uploadProgress = {[weak self](bytesSent:Int64, totalBytesSent:Int64, totalBytesExpectedToSend:Int64) -> Void in 
          if let match = self?.match 
          { 
     >>>>>>error here   var index = self?.matchesController.objects?.indexOf(match) 
          } 
         } 
        } 

       }) 
      } 
      catch 
      { 
       // TODO: handle error 
      } 
     } 
    } 
} 

从我只读,当数组中包含的对象不符合Equatable扩展时会发生此错误。但PFObject继承自符合该扩展的NSObject。所以我不知所措...

任何指针赞赏

找到解决方案。事实证明,在PFQueryTableViewController对象方法返回[AnyObject],所以我需要将其转换为[赛事]

let objects = self?.matchesController.objects as! [PFObject] 

,然后它的作品...

我还是新的SWIFT和解析,但这似乎是错误的对象方法返回[AnyObject]?尤其是考虑到在doc

/*! 
@abstract The array of instances of <PFObject> that is used as a data source. 
*/ 
public var objects: [AnyObject]? { get } 
评论