'导入UIKit'导致消失了Double-to-Int的转换错误。为什么?

问题描述:

我是Swift初学者,我有一个问题。'导入UIKit'导致消失了Double-to-Int的转换错误。为什么?

我在Xcode6-Beta3中创建了一个新的操作文件,并且删除了
自动生成的所有默认片段。 我写了下面只
一行,

var x:Int = (1.234 as Int) 

然后,此行引起与消息编译错误,说

Playground execution failed: 
error: <EXPR>:1:20: error: 
'Double' is not convertible to 
'Int' 
var x:Int = (1.234 as Int) 
      ^
在控制台输出

。 我可以理解这个错误,因为1.234不能被转换为Int。

接下来,我增加了一个线import UIKitvar x:Int = (1.234 as Int)之前,
所以代码进行以下操作:

import UIKit 

var x:Int = (1.234 as Int) 

然后,上述错误消息消失。但我不明白
,加入import UIKit引起消失
错误消息声称
'Double' is not convertible to 'Int'
上面说的原因。

请教我这个理由或一些参考文献 了解它。

问候。

+4

为什么使用Xcode 6 beta 3?你应该使用测试版7. – 2014-09-05 02:34:18

+0

这也是发生在测试版7.我认为它与桥接与NSNumber – 2014-09-05 02:37:37

+0

Thanx。无论如何,我会尽快更新我的Xcode。 – ykt68 2014-09-05 02:55:51

编译器将总是寻求一种方法,尽可能地编译代码。随着import UIKit,你的代码是

var _x = 1.234 as NSNumber 
var x:Int = (_x as Int) 

东西相当于已UIKit进口时,编译器可以求助于NSNumber

+0

谢谢你的回答。我理解编译时转换NSNumber。 – ykt68 2014-09-05 04:25:18