Почему SwiftyJSON создает неявно развернутый необязательный параметр для своих констант?

В коде SwiftlyJSON он определяет следующие константы, используя принудительное развертывание:

///Error code
public let ErrorUnsupportedType: Int! = 999
public let ErrorIndexOutOfBounds: Int! = 900
public let ErrorWrongType: Int! = 901
public let ErrorNotExist: Int! = 500

Какова цель объявления констант как неявно развернутых необязательных здесь?

Примечание: я не спрашиваю, почему или когда использовать неявно развернутый файл, а скорее почему он используется в SwiftyJSON, поскольку я не вижу причин для этого.

1 ответ

Ну, может, я ошибаюсь, конечно, лучше спросить у автора кода. Но вот мои предложения в любом случае:

  1. Обвиняя коммит, мы видим, что изменения, внесенные 6 октября 2014 года, и, как мы знаем, только что выпущенный Swift, могут содержать некоторые предупреждения компилятора или ошибки:

  1. На самом деле, написав Int! вместо Int мы заставляем компилятор генерировать ImplicitlyUnwrappedOptional<Int> type (и, зная этот факт, мы можем вернуться к пункту 1):

    public let x: Int  = 1
    public let y: Int! = 2
    
    println(x.dynamicType)
    println(y.dynamicType)
    

    Выходы:

    Swift.Int
    Swift.ImplicitlyUnwrappedOptional<Swift.Int>
    
Другие вопросы по тегам