我们正在使用CocoaPods config pod 'SwiftyJSON', '3.1.0'
升级到SwiftyJSON Swift 3。
我们收到此错误:
/Users/xxx/Documents/iOS/xxx/Pods/SwiftyJSON/Source/SwiftyJSON.swift:866:33: 无法转换类型' Int32的返回表达式?'返回类型 '诠释'?
错误发生在SwiftyJSON.swift中的return语句中:
public var int: Int? {
get {
return self.number?.int32Value
}
set {
if let newValue = newValue {
self.object = NSNumber(value: newValue)
} else {
self.object = NSNull()
}
}
}
任何人都知道这是什么问题?这是我们的CocoaPods配置还是使用SwiftyJSON的问题?
答案 0 :(得分:8)
我只需用下面的代码替换一行代码。简单
public var int: Int? {
get {
return self.number?.intValue
}
set {
if let newValue = newValue {
self.object = NSNumber(value: newValue)
} else {
self.object = NSNull()
}
}
}
答案 1 :(得分:4)
实现了SwiftyJSON的supported version是3.0.0而不是3.1.0。使用3.0.0,问题就消失了。
pod 'SwiftyJSON', '3.0.0'
答案 2 :(得分:0)
试试这个,
错误:返回self.number?.int32Value
好:返回self.number?.intValue
原因:它似乎在返回整数方面更为通用。
答案 3 :(得分:0)
我手动添加as? Int
以使其再次运行:
public var int: Int? {
get {
return self.number?.int32Value as? Int
}
set {
if let newValue = newValue {
self.object = NSNumber(value: newValue)
} else {
self.object = NSNull()
}
}
}