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 ()
}

私はダウンロード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

下の画像

ここに画像の説明を入力

ありがとう

4

1 に答える 1

13

Int32Objective-C から自動的にブリッジすることはできませんNSNumber

このドキュメントを参照してください:

次のタイプはすべて、自動的に NSNumber にブリッジされます。

  • 整数
  • UInt
  • 浮く
  • ダブル
  • ブール

したがって、次のようにする必要があります。

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

ところで、なぜあなたは使うのInt32ですか?特別な理由がない場合は、を使用してくださいInt

于 2014-11-18T10:12:04.640 に答える