Подкласс PFObject получает сообщение об ошибке "Не удалось преобразовать значение типа" Соответствие "в ожидаемый тип аргумента" @noescape (AnyObject) throws -> Bool ""
Я получаю следующую ошибку при вызове indexOf для массива подкласса PFObject.
Невозможно преобразовать значение типа "Соответствие" в ожидаемый тип аргумента "@noescape (AnyObject) throws -> Bool"
мои занятия:
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, которые соответствуют этому расширению. Так что я в растерянности...
Любые указатели оценили
1 ответ
Нашел решение. Оказывается, что метод объектов в PFQueryTableViewController возвращает [AnyObject], поэтому мне нужно привести его к [Match]
let objects = self?.matchesController.objects as! [PFObject]
и тогда это работает...
Я все еще новичок в Swift и Parse, но это кажется неправильным для метода объектов, чтобы вернуть [AnyObject]? особенно учитывая комментарий в документе
/*! @abstract The array of instances of <PFObject> that is used as a data source. */ public var objects: [AnyObject]? { get }