types'Int32'不符合协议'AnyObject'Swift?
我有一个Model, NSObject
子类,如下所示。
class ConfigDao: NSObject { var categoriesVer : Int32 = Int32() var fireBallIP : String = String () var fireBallPort : Int32 = Int32() var isAppManagerAvailable : Bool = Bool() var timePerQuestion : String = String () var isFireballAvailable : Bool = Bool () }
我已经下载NSMutableData
并使用NSJSONSerialization
从它做出JSON
。
我的代码是
func parserConfigData (data :NSMutableData) -> ConfigDao{ var error : NSError? var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary var configDao : ConfigDao = ConfigDao() println("Print Config \(json)") configDao.categoriesVer = json["CategoriesVer"] as Int32 configDao.fireBallIP = json["FireBallIP"] as String configDao.fireBallPort = json["FireBallPort"] as Int32 configDao.isAppManagerAvailable = json["IsAppManagerAvailable"] as Bool configDao.timePerQuestion = json["TimePerQuestion"] as String configDao.isFireballAvailable = json["IsFireballAvailable"] as Bool return configDao }
我得到错误
Type '`Int32`' does not conform to protocol 'AnyObject'
我在哪里使用Int32
。
下面的图片
谢谢
Int32
不能从Objective-C NSNumber
自动桥接。
看到这个文件 :
所有以下types都自动桥接到NSNumber:
- 诠释
- UINT
- 浮动
- 双
- 布尔
所以你必须这样做:
configDao.categoriesVer = Int32(json["CategoriesVer"] as Int)
顺便说一句,为什么你使用Int32
? 如果你没有任何特定的原因, 你应该使用Int
。