将Dictionary <string,any =“”>附加到数组抛出异常</string,>

时间:2014-07-10 11:20:17

标签: ios7 swift ios8 xcode6

尝试将Dictionary<String, Any>保存到Array <Dictionary<String, Any>>时 系统抛出异常EXC_BREAKPOINT。相同的代码,但我使用Any代替String工作正常:Dictionary<String, String >存储在Array <Dictionary<String, String >>

为什么会这样?我认为它有Any类型的问题,但是我无法解决这个问题,因为我需要Dictionary来存储不同类型的对象

更新 如果我声明数组var mListItems = Array<Dictionary<String, Any>>(); 作为一个类属性然后它崩溃,如果mListItems被声明为局部变量它工作

2 个答案:

答案 0 :(得分:1)

似乎有办法解决崩溃问题:

A - 使用AnyObject而不是Any作为字典值类型

class ViewController: UIViewController {

    var mListItems = Array<Any>() // Or Array<Dictionary<String, AnyObject>>()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        var characters = Dictionary<String, AnyObject>()
        characters["a"] = "A"
        mListItems.append(characters)
    }

} 

B - 使用NSDictionary

var animals = NSMutableDictionary()
animals.setValue("Miao", forKey: "cat")
mListItems.append(animals) // mListItems is Array of Any

答案 1 :(得分:0)

这是Swift中的一个错误。我不能再复制它了。