ios - Swift 2 的 Xcode 7.0 更新问题

标签 ios xcode swift swift2

当我将 Xcode 更新到最新版本时,我刚刚遇到了用 Swift 编写的项目的问题; Xcode 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())
        }
    }

最佳答案

某些函数删除了一些参数,在本例中是错误指针。相反,它会抛出异常(这意味着您只能通过 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
        }
    }
}

关于ios - Swift 2 的 Xcode 7.0 更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791464/

相关文章:

ios - swift : Error when the same button is reused. 错误是 "<UIButton: ; frame = ; opaque = NO; autoresize = RM+BM; layer"

ios - 检测应用何时收到推送远程通知

cocoa - 如何将 NSNumber 与快速枚举值进行比较?

iphone - 将 UITextField (field.text) NSString * 转换为 char *?

ios - 该请求在 iOS 10.0+ 模拟器上被服务委托(delegate) (SBMainWorkspace) 拒绝,在 iOS 9.3 模拟器上出现 FBSOpenApplicationErrorDomain 错误 1。为什么?

arrays - 转换 [字符串]?在 Swift 中转换为字符串

ios - 有没有办法手动更改 PDF 的 url 路径并使其实时更新?

IOS5 西类牙语字符编码

ios - 如何在Swift中从JSON对象删除属性(key:values)

ios - 我如何才能插入自己的观点,而不必每次都实例化自己