我需要帮助。虽然转换从Swift 2.3 -〉3.2我收到下面的错误。我不能解决这个错误。
下面是我的编码的东西,在那里我面临着一些问题。
错误:
不能使用String类型的索引为NSDictionary类型的值添加下标
在这一行:if let tempValue:AnyObject = tempDict["value"] {
if (productToReturn.planoRetailPackSize == nil || productToReturn.planoRetailPackSize == "0.0") {
if let dataToProcess:NSDictionary = dict["data"] as? NSDictionary {
if let productDataRecord:NSDictionary = dataToProcess["productDataRecord"] as? NSDictionary{
if let module:NSArray = productDataRecord["module"] as? NSArray{
for (_,value) in module.enumerated(){
if let parentDic:NSDictionary = value as? NSDictionary{
if let cpmChild:NSDictionary = parentDic["cem:canadaExtensionModule"] as? NSDictionary {
if let tempDict:NSDictionary = cpmChild["retailPackSize"] as? NSDictionary {
if let tempValue:AnyObject = tempDict["value"] { //Error is Here
let myValue: String = String(describing: tempValue)
productToReturn.planoRetailPackSize = myValue
}
}//item
}
}
}
}
}
}
}
请帮助我。我对iOS非常陌生。无法理解这种类型的错误。
2条答案
按热度按时间2ekbmq321#
使用本机类型
注意:在
for
循环中,myValue
将在每次迭代中覆盖planoRetailPackSize
。这很可能不是预期的。mtb9vblg2#
最好的答案是使用原生Swift类型,另一种方法是将下标转换为
NSString
。