'导入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 UIKit
var x:Int = (1.234 as Int)
之前,
所以代码进行以下操作:
import UIKit
var x:Int = (1.234 as Int)
然后,上述错误消息消失。但我不明白
,加入import UIKit
引起消失
错误消息声称'Double' is not convertible to 'Int'
上面说的原因。
请教我这个理由或一些参考文献 了解它。
问候。
答
编译器将总是寻求一种方法,尽可能地编译代码。随着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
为什么使用Xcode 6 beta 3?你应该使用测试版7. – 2014-09-05 02:34:18
这也是发生在测试版7.我认为它与桥接与NSNumber – 2014-09-05 02:37:37
Thanx。无论如何,我会尽快更新我的Xcode。 – ykt68 2014-09-05 02:55:51