Тип Int32 не соответствует протоколу AnyObject Swift?
У меня есть модель, подкласс 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
и сделал JSON
из него с помощью NSJSONSerialization
,
Мой код
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
,
Изображение ниже
Спасибо
1 ответ
Решение
Int32
не может быть автоматически соединен с Objective-C NSNumber
,
Смотрите этот документ:
Все следующие типы автоматически соединяются с NSNumber:
- Int
- UInt
- терка
- двойной
- Bool
Так что вы должны сделать так:
configDao.categoriesVer = Int32(json["CategoriesVer"] as Int)
Кстати, почему вы используете Int32
? Если у вас нет конкретной причины, вы должны использоватьInt
,