Nano Hash - криптовалюты, майнинг, программирование

Методы Parse SDK не работают в бета-версии Xcode 6.3

Пока у меня проблемы с такими блоками:

user.signUpInBackgroundWithBlock {
        (succeeded: Bool!, error: NSError!) -> Void in
        if error == nil {
            println("success")
        } else {
            println("\(error)");
            // Show the errorString somewhere and let the user try again.
        }
    }

Когда я добавляю это в Xcode, я получаю следующее:

Cannot invoke 'signUpInBackgroundWithBlock' with an argument list of type '((Bool!, NSError!) -> Void)'

Когда я запускаю этот код в Xcode 6.3 (не бета-версия), он работает нормально. Но в бета-версии он терпит неудачу и не позволяет мне строить. Любые идеи, если это будет прояснено или если есть другая реализация, которую я мог бы использовать. Я пытался использовать только signUpInBackgroundWithTarget, но я просто не смог правильно получить доступ к ошибке, если она получена.

04.04.2015

Ответы:


1

убедитесь, что вы используете SDK версии 1.7.1, тогда удаление типов из вашего замыкания должно помочь:

user.signUpInBackgroundWithBlock { (succeeded, error) -> Void in
    if error == nil {
        println("success")
    } else {
        println("\(error)");
        // Show the errorString somewhere and let the user try again.
    }
}
09.04.2015

2

Из-за нового добавления «аннотаций обнуляемости» в Swift 1.2 вам необходимо переписать приведенный выше код следующим образом (используя Parse 1.7.1+):

user.signUpInBackgroundWithBlock { (succeeded: Bool, error: NSError?) -> Void in
    if let error = error {
        println(error) // there is an error, print it
    } else {
        if succeeded {
            println("success")
        } else {
            println("failed")
        }
    }
}

Parse теперь возвращает необязательные параметры (?) вместо явно развернутых объектов (!).

14.04.2015
  • Странно, но Xcode показывает мне ошибку: Cannot invoke 'signUpInBackgroundWithBlock' with an argument list of type '((Bool, NSError?) -> Void)' 16.08.2015
  • @orkenstein ты хотя бы на Parse 1.7.1? 17.08.2015

  • 3

    Нотация Swift изменена

    class AAPLList : NSObject, NSCoding, NSCopying { 
        // ...
        func itemWithName(name: String!) -> AAPLListItem!
        func indexOfItem(item: AAPLListItem!) -> Int
    
        @NSCopying var name: String! { get set }
        @NSCopying var allItems: [AnyObject]! { get }
        // ...
    }
    

    После аннотаций:

    class AAPLList : NSObject, NSCoding, NSCopying { 
        // ...
        func itemWithName(name: String) -> AAPLListItem?
        func indexOfItem(item: AAPLListItem) -> Int
    
        @NSCopying var name: String? { get set }
        @NSCopying var allItems: [AnyObject] { get }
        // ...
    }
    

    Таким образом, вы можете изменить

    (succeeded: Bool!, error: NSError!) -> Void in

    to

    (success: Bool, error: NSError?) -> Void in

    19.06.2015

    4

    Какой Parse SDK вы используете? Несколько дней назад они выпустили версию 1.7.1, которая должна решить вашу проблему.

    04.04.2015
  • Есть ли что-то особенное, что мне нужно сделать, чтобы перейти на 1.7.1? Я удалил 1.7.0 и перетащил 1.7.1, и все равно получаю ту же ошибку. 04.04.2015
  • Нет... в примечаниях к выпуску говорится, что это должно решить вашу проблему, поэтому это может быть что-то на стороне Xcode. 04.04.2015
  • Хорошо, я могу попробовать начать новый проект с нуля и посмотреть, получится ли у меня. Спасибо хоть. 04.04.2015

  • 5

    Сдача:

    (succeeded: Bool!, error: NSError!) -> Void in
    

    to

    (succeeded, error) -> Void in
    

    Это изменение необходимо из-за изменений в Parse SDK.

    10.05.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..