0

当我注意到这种奇怪的行为时,我正在 Playground 中尝试使用 Swift 数组

下面的代码工作正常。

import UIKit

var array = [1,2,3,"Booyaa"]

但是,一旦我从 Playground 中删除“import UIKit”行,我就会收到以下错误

Playground 执行失败:/var/folders/tx/tvyf1r314wj9371f491qx8wjbqbgsr/T/./lldb/11708/playground71.swift:2:17:错误:'Int' 不可转换为 'IntegerLiteralConvertible' var array = [1, 2, 3 ,“博雅”]

为什么会这样?

4

2 回答 2

1

正确答案在这里,针对我在 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 
于 2015-09-26T05:40:37.563 回答
0

使用高级编程语言,这需要lexical structure检查和比较复杂类型作为您的问题。它是在Foundation框架中实现的。

UIKit实现了一些UIapi asUIView等......并且在UIKit框架中需要使用Foundation框架。

顺便说一句:Foundation框架是核心SwiftObjective-C语言。

希望这可以帮助!

于 2015-08-03T03:52:16.733 回答