Ian*_*rce 11 xcode ios swift xcode7 swift2
每当一个字符串文字出现在一个声明中lazy var我在Swift 2/XCode 7中得到一个编译错误:Cannot convert value of type String to expected argument type '(_builtinStringLiteral: RawPointer, byteSize: Word, isASCII: Int1)' ...
(我在Swift 1.2/XCode 6中没有问题)
产生此错误的最简单行看起来像这样:
lazy var foo = "bar"
Run Code Online (Sandbox Code Playgroud)
但更相关(令人讨厌),它也发生在带有字符串参数的初始化器:
lazy var viewsLabel = HWLabel(color: COLOR_WHITE, font: ProximaNova("Semibold", 13))
lazy var durationIconView = HWIconView(imageName: "TimeIcon", color: COLOR_WHITE)
Run Code Online (Sandbox Code Playgroud)
这些显然是我自己的初始化程序,我注意到Apple SDK似乎没有经常在初始化程序中使用字符串作为args.字符串init是不好的做法?
什么工作是将声明包装在一个块中.
我现在可能会这样做,或者只是让它们没有lazy.
我仍然很好奇.这是一个XCode 7错误吗?
更新:
只是注意到什么工作不是在闭包中包装声明,而是指定var的类型,以便它不被推断.
那么,有什么用呢:
lazy var viewsLabel: HWLabel = HWLabel(color: COLOR_WHITE, font: ProximaNova("Semibold", 13))
lazy var durationIconView: HWIconView = HWIconView(imageName: "TimeIcon", color: COLOR_WHITE)
Run Code Online (Sandbox Code Playgroud)
为什么lazy var声明中出现的字符串与类型推断相混淆是超出我的.仍然有预感,它可能是一个XCode 7错误.
| 归档时间: |
|
| 查看次数: |
3630 次 |
| 最近记录: |