当使用Generic作为属性的类型约束时,我遇到了问题.这是一个非常简单的例子:
import UIKit
class TSSignal<MessageType> {
var message: MessageType?
init() {
}
}
Run Code Online (Sandbox Code Playgroud)
在Xcode 6 Beta(6A215l)中,这将无法编译.它失败,底部出现以下错误:
TSSignal.swift:13:9: error: unimplemented IR generation feature non-fixed class layout var message: MessageType? ^ LLVM ERROR: unimplemented IRGen feature! non-fixed class layout Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc??hain/usr/bin/swift failed with exit code
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除该行var message: MessageType?,它将构建良好.有任何想法吗?谢谢.
编辑 - 更改了代码和错误以反映当前的问题状态
编辑 - 相关:子类化NSObject和使用泛型时的Swift编译错误
更新(2014年6月18日) - 从Xcode 6 - Beta 2开始,该问题仍然存在
更新(2014年7月25日) - 问题仍然存在,从Xcode 6 - Beta 4开始(感谢@Ralfonso,我也验证了)
更新(2014年8月4日) - 从Xcode 6 - Beta 5开始,问题已解决!
编辑编辑:
这绝对是编译器中的一个错误。
我尝试使用以下方法“智胜”编译器:
class TSSignal<TMessage>
{
var messageType : Optional<TMessage> = nil
init() { }
}
Run Code Online (Sandbox Code Playgroud)
同样的问题。
| 归档时间: |
|
| 查看次数: |
1023 次 |
| 最近记录: |