自己用swift开发才这么几次,并不熟悉所以在摸索过程中,在今天做东西的过程中由于需要用到字典里边需要插入nil,心安理得的使用如下写法感觉没有问题
let array = [["key1":"val1","key2":"val2","key3":nil],["key1":"val1","key2":"val2","key3":nil]]
但我错了,就因为这种写法今天浪费了我很长时间查找为什么我的xCode在编译的时候为什么总是电脑内存百分之百的使用率,但xCode尽让没有报出是哪里出现的问题,我几乎都要疯了,可以就是不知道为啥,经过各种排查,然后重装xCode还是没有能解决掉,后来突然想起可能和这种写法有关将整块代码注释掉,编译运行,没错编译通过了并且正常运行,后来就疯狂查资料,查有关字典里存储nil的资料,后来终于找到相关内容,其实正确写法应该是在定义这种数据时候应该定义好数据类型,如以下代码是可以正常用的
let array:[[String,AnyObject?]] = [["key1":"val1","key2":"val2","key3":nil],["key1":"val1","key2":"val2","key3":nil]]
没错就是这种代码才可以用,你肯定注意到AnyObject?这个内容,如果不写出结构的定义那么编译器也不会发现有什么问题,可能swift的编译器目前还没考虑到这些,不过以后可能编译器会把之前说的那种写法兼容上,自己可以解析数据结构类型或是能够在xCode抛出警告告诉我们那样写是不对的,然后给出建议写法。