在重新访问一些似乎与Xcode7.3一起使用的代码时,我注意到我收到了'Swift._NativeDictionaryStorageOwner'(0x40c2134)类型的'无法转换为'NSArray'(0x383bb8d8)的值。
userdata.data = userOtherInfo [indexPath.row] as! NSArray的
以下是似乎是问题的代码部分:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let userdata:SubContentsViewController! = SubContentsViewController()
let storyboard = UIStoryboard(name: "SubContentsViewController", bundle: nil)
let subContentsVC = storyboard.instantiateViewControllerWithIdentifier("SubContentsViewController") as! SubContentsViewController
userdata.data = userOtherInfo[indexPath.row] as! NSArray
self.navigationController?.pushViewController(subContentsVC, animated: true)
}
答案 0 :(得分:0)
正如您在评论中写的那样
成功时,
rows = value["search_result"] as? [[String: AnyObject]]
self.userOtherInfo = rows
rows / userOtherInfo
是词典([[String: AnyObject]]
)的数组。
这是错误信息所说的内容:
无法将Dictionary转换为数组。
解决方案非常简单。
由于编译器已经知道userOtherInfo
包含[String: AnyObject]
数组,因此根本不需要转换。
userdata.data = userOtherInfo[indexPath.row] // object is [String:AnyObject]
确保将userdata.data
声明为[String:AnyObject]
或更具体的词典。
答案 1 :(得分:0)
此解决方案对我来说效果很好。 let mutableDict = NSMutableDictionary(dictionary:newDictionaryResult!)