4

我有一个模型,它的子类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 ()
}

我已经下载NSMutableDataJSON使用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

下图

在此处输入图像描述

谢谢

4

1 回答 1

13

Int32不能从 Objective-C 自动桥接NSNumber

请参阅此文档

以下所有类型都会自动桥接到 NSNumber:

  • 诠释
  • UInt
  • 漂浮
  • 双倍的
  • 布尔

所以你必须这样做:

configDao.categoriesVer = Int32(json["CategoriesVer"] as Int)

顺便说一句,你为什么使用Int32?如果您没有任何具体原因,则应使用Int.

于 2014-11-18T10:12:04.640 回答