当我注意到这种奇怪的行为时,我正在操场上尝试Swift数组
下面的代码工作正常。
import UIKit
var array = [1,2,3,"Booyaa"]
但是,一旦我从Playground中删除“ import UIKit”行,就会收到以下错误消息
游乐场执行失败:/var/folders/tx/tvyf1r314wj9371f491qx8wjbqbgsr/T/./lldb/11708/playground71.swift:2:17:错误:'Int'无法转换为'IntegerLiteralConvertible'变量数组= [1、2、3 ,“ Booyaa”]
为什么会这样?
正确的答案在这里,是对我在Apple Dev论坛上发布的相同问题的回答=> https://forums.developer.apple.com/message/35389
这是因为Swift数组只能包含相同类型的对象。您的数组包含整数和字符串。当您导入UIKit时,借助Swift的推理引擎,数组中的对象将成为NSObject类型的对象。若要亲自查看,请在数组定义后添加一行,您将看到类型为Swift.array
import UIKit
var array = [1,2,3,"Swift2"]
array.dynamicType
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句