"Value of type 'AnyObject' has no member."..尝试为 Swift 中的数组中的对象赋值时发生错误

"Value of type 'AnyObject' has no member."..Error happening when trying to give value to an object in an Array in Swift

首先我创建了一个自定义 class:

  class TVInfo {
  var cast : [String]
  var name : String
  var charecterName : String

init (cast: [String], name: String, charecterName: String){

    self.cast = cast
    self.name = name
    self.charecterName = charecterName
 }
}

然后我尝试解析 JSON 数据

 let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as!
      NSDictionary

 let cast = jsonResult.objectForKey("cast") as! NSArray
          for item in cast
          {
          let name = item["name"] as! String
          let charecterName = item["character_name"] as! String

          }
let TV = TVInfo(cast: cast as! [String], name: cast[0].name, charecterName: cast[0].charecterName)

但我一直收到错误 "Value of type 'AnyObject' has no member 'charecterName'"。这很奇怪,因为第一个常量 "name" 似乎有价值,但它与 "characterName" 在同一个数组中。我怎样才能正确地给 characterName 常量赋值?

您正在从 item 中提取 name 并从 jsonResult 中提取 character_name,但您通过尝试通过失败的点表示法访问属性而忽略了结果。

我猜你想实现这样的目标

let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as!
  NSDictionary

var infoArray = [TVInfo]()
let cast = jsonResult.objectForKey("cast") as! [[String:String]]
for item in cast {
  let name = item["name"]!
  let charecterName = item["character_name"]!
  let TV = TVInfo(cast: cast, name: name, charecterName: charecterName)
  infoArray.append(TV)
}