#ios #swift #parse-platform #pfuser #parse-ios-sdk
#iOS #swift #синтаксический анализ-платформа #pfuser #синтаксический анализ-ios-sdk
Вопрос:
Я использую Parse
и PFUser
в приложении Swift для iOS и сталкиваюсь с тем, что PFUser.current() делает не совсем то, что я хочу, из-за проблем с синхронизацией.
По этой причине я пытаюсь использовать: PFUser.getCurrentUserInBackground().
Я начал с приведенного ниже кода, вдохновленный тем, что можно найти здесь:https://github.com/BoltsFramework/Bolts-ObjC.
Но этот документ, вероятно, немного устарел, он не совсем работает.
let userCheckTask = PFUser.getCurrentUserInBackground()
userCheckTask.continueWith {
(task: BFTask!) -> BFTask<AnyObject> in
if task.isCancelled() { // Error-1.
// the save was cancelled.
} else if task.error != nil {
// the save failed.
} else {
// the object was saved successfully.
var object = task.result() as PFObject // Error-2.
}
}
Компилятор выдает мне две ошибки, эта в строке с пометкой «Ошибка-1»
Cannot invoke 'isCancelled' with no arguments
И этот другой в строке с пометкой «Ошибка-2»
Expression type 'PFUser?' is ambiguous without more context
Я понятия не имею, какой аргумент ‘isCancelled’ ожидает.
Кто-нибудь знает, как это исправить?
Комментарии:
1. Замените AnyObject на PFUser.
2. Спасибо за предложение. Я только что попытался заменить AnyObject на PFUser, и я все еще получаю точно такие же 2 ошибки.
Ответ №1:
let userCheckTask = PFUser.getCurrentUserInBackground()
userCheckTask.continueWith {
(task: BFTask) -> BFTask<AnyObject> in
if let e = task.error {
return BFTask(error: e)
} else {
return BFTask(result: task.result)
}
}
Комментарии:
1. Я действительно не получаю первую ошибку, заменяющую при выполнении «task.isCancelled()» на «task.isCancelled» , но я получаю другую, используя ваш код: «Отсутствует возврат в закрытии, которое, как ожидается, вернет ‘BFTask<PFUser>'».
2. Да, вы должны вернуть объект PFUser.
3. Какова инструкция для этого? «возврат ???». Другими словами, что вы подразумеваете под «объектом PFUser» в этом контексте?
4. ОК. Спасибо, по крайней мере, теперь он компилируется. Мне нужно попытаться посмотреть поближе, чтобы увидеть, решает ли это мою проблему.
5. Я пробовал код, но, насколько я вижу, от него мало пользы. Это проходит через ветку успеха еще до того, как я успеваю войти в систему. Поскольку я рассчитывал на это, чтобы получить учетные данные, это работает не так, как я ожидал. Или я делаю что-то неправильно.