2015-04-21 6 views
0

EDIT: Я думаю, эта ошибка может быть связано с тем, что Xcode 6.3, возможно, изменились некоторые особенности вокруг и query.getObjectInBackgroundWithId был один из них ....Анализировать и Swift Xcode 6.3 Вопрос

I Я пытаюсь запустить запрос, но когда я запускаю метод query.getObjectInBackgroundWithId, я получаю сообщение об ошибке:

«Невозможно вызвать« getObjectInBackgroundWithId »с помощью списка аргументов типа (string, block: (PFObject !, NSError?) -> Void "

override func viewDidLoad() { 
    super.viewDidLoad() 

    let score = PFObject(className: "gameScore") 




    var query = PFQuery(className: "gameScore") 
    query.getObjectInBackgroundWithId("HK0UbuTIQL", block: { 
     (score: PFObject!, error: NSError?) -> Void in 

     if error == nil { 

      println("pussiesPoundedCreated") 

     } else { 

      println(error) 
     } 
    }) 
} 

ответ

1

Вы можете удалить утверждение блока и разворачивать переменные, как это:

var query = PFQuery(className: "gameScore") 
query.getObjectInBackgroundWithId("HK0UbuTIQL") { 
    (gameScore: PFObject!, error: NSError?) -> Void in 
    if error == nil && gameScore != nil { 
    println(gameScore) 
    } else { 
    println(error) 
    } 
} 

Parse.com документация довольно хорошо и имеет Swift доступны для большинства всех примеров кода. Here is a link to this topic

+0

Я использовал приведенный выше фрагмент кода, который является тем же самым синтаксисом, который указан в документации по документации Parse.com. я все еще получаю ошибку "Не удается вызвать 'getObjectInBackgroundWithId' со списком аргументов типа (строка, (PFObject, NSError) -> Пустота!?)" вар запрос = PFQuery (имя класса: "GameScore") запрос. getObjectInBackgroundWithId ("j4I4z0z0Yh") { (gameScore: PFObject !, ошибка: NSError!) -> Пустота в если ошибка == ноль && gameScore = ноль { Println (gameScore) } еще!} Println (ошибка) } } } –

+0

Попробуйте изменить 'NSError!' На 'NSError? 'И проверьте свою капитализацию' className'. Я думаю, что ты рядом. Кроме того, я заметил, что ваш идентификатор изменен, поэтому проверьте, чтобы убедиться, что у вас это правильно. –

+0

К сожалению, это также не удалось решить проблему. Я думаю, что Xcode 6.3 добавил пару новых функций и немного изменил синтаксис этого метода. –

0

Этот метод принимает блок с сигнатурой аргумента (PFObject!, NSError!), но блок, который вы написали, имеет подпись аргумента (PFObject!, NSError?). Изменить NSError? на NSError!.

Вы должны также использовать trailing closure syntax в Portland Runner's answer, потому что это более читаемо.

+1

Спасибо за ответ, Аарон. Я внес изменения, которые вы рекомендовали, и я все еще вижу ту же ошибку! –

Смежные вопросы