"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)
}
首先我创建了一个自定义 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)
}