Проблема обновления Xcode 7.0 с Swift 2

Я только что столкнулся с проблемой, связанной с моим проектом, написанным на Swift, когда я обновил свой Xcode до последней версии; Xкод 7.0.

Xcode сказал мне, что я должен преобразовать свой код для работы с новым синтаксисом Swift (Swift 2).

Проблема в том, что я не мог понять, как решить некоторые строки кода.

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

public struct JSON {

    public init(data:NSData, options opt: NSJSONReadingOptions = .AllowFragments, error: NSErrorPointer = nil) {
        if let object: AnyObject = NSJSONSerialization.JSONObjectWithData(data, options: opt, error: error) {
            self.init(object)
        } else {
            self.init(NSNull())
        }
    }

person Mohammad Othman    schedule 25.09.2015    source источник
comment
Какую ошибку вы видите?   -  person Tom Elliott    schedule 26.09.2015


Ответы (1)


Некоторые функции пропускали некоторые аргументы и в данном случае указатель ошибки. вместо этого он бросает (что означает, что вы можете вызвать его только с обработкой try catch). вот версия вашего кода swift 2.0

public struct JSON 
{

    public init(data:NSData, options opt: NSJSONReadingOptions = .AllowFragments, error: NSErrorPointer = nil) 
    {
        do {
            let object:AnyObject = try NSJSONSerialization.JSONObjectWithData(data, options: opt)
            self.init(data: object as! NSData)
        } catch {
            //error handling code
        }
    }
}
person Lukas    schedule 25.09.2015
comment
Палец вверх приветствуется ;) - person Lukas; 26.09.2015