首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 6+ Swift + NSTextViewDelegate =编译错误

Xcode 6+ Swift + NSTextViewDelegate =编译错误
EN

Stack Overflow用户
提问于 2014-06-17 22:46:38
回答 2查看 1.5K关注 0票数 2

我正试图用Swift重写我的测试应用程序。现在看来不可能..。或者我漏掉了什么。看:

  1. 创建新的OS应用程序项目。
  2. 选择基于文档的应用程序、核心数据和Swift语言.
  3. 对任何泛型类都采用NSTextViewDelegate协议。
  4. 生成并获取编译错误。

看上去像个虫子!如果我删除NSTextViewDelegate协议,一切都会好起来的。但我需要那个协议。它在Xcode 5和Objective上工作。Xcode 6 beta1和beta2都存在这个问题。有什么想法吗?

P.S.:已经提交了bugreport,因为它看起来像是Xcode 6的错误。

命令/Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctool‌​chain/usr/bin/swift失败,退出代码254

代码语言:javascript
复制
    0  swift                    0x00000001056a4e08 llvm::sys::PrintStackTrace(__sFILE*) + 40
    1  swift                    0x00000001056a52f4 SignalHandler(int) + 452
    2  libsystem_platform.dylib 0x00007fff8a4025aa _sigtramp + 26
    3  swift                    0x0000000104c94eca void llvm::BitstreamWriter::EmitRecordWithAbbrevImpl<unsigned long long>(unsigned int, llvm::SmallVectorImpl<unsigned long long>&, llvm::StringRef) + 1066
    4  swift                    0x0000000104c46296 swift::serialization::Serializer::writeConformance(swift::ProtocolDecl const*, swift::ProtocolConformance const*, swift::Decl const*, std::__1::array<unsigned int, 256ul> const&, bool) + 1366
    5  swift                    0x0000000104c4b33c swift::serialization::Serializer::writeDecl(swift::Decl const*) + 9420
    6  swift                    0x0000000104c521b5 swift::serialization::Serializer::writeAllDeclsAndTypes() + 8837
    7  swift                    0x0000000104c52b1e swift::serialization::Serializer::writeAST(llvm::PointerUnion<swift::Module*, swift::SourceFile*>) + 1182
    8  swift                    0x0000000104c538cb swift::serialization::Serializer::writeToStream(llvm::raw_ostream&, llvm::PointerUnion<swift::Module*, swift::SourceFile*>, swift::SILModule const*, bool, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, llvm::StringRef, llvm::StringRef, bool) + 187
    9  swift                    0x0000000104c5424e swift::serialize(llvm::PointerUnion<swift::Module*, swift::SourceFile*>, char const*, char const*, swift::SILModule const*, bool, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, llvm::StringRef, llvm::StringRef, bool) + 398
    10 swift                    0x0000000104a69679 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 4105
    11 swift                    0x0000000104a6865d main + 1533
    12 libdyld.dylib            0x00007fff8ba125fd start + 1
    13 libdyld.dylib            0x0000000000000031 start + 1952373301
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: merge-module command failed due to signal (use -v to see invocation)
Command /Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-19 11:32:31

我也遇到过同样的问题。

为了解决这个问题,我对NSTextView进行了子类化,并完成了我自己的委托,如下所示。

代码语言:javascript
复制
class TextViewDelegate: NSObject { 
    func textView(textView: NSTextView!, doCommandBySelector commandSelector: Selector) -> Bool {
        // Do something useful here or just
        return false
    }
}

class TextView: NSTextView {
    let myDelegate = TextViewDelegate()

    override func doCommandBySelector(aSelector: Selector) {
        if !myDelegate.textView(self, doCommandBySelector: aSelector) {
            super.doCommandBySelector(aSelector)
        }
    }
}

这里有一个例子,https://github.com/sjhorn/SwiftEdit

票数 2
EN

Stack Overflow用户

发布于 2014-07-08 14:20:00

有了Beta 3,编译不再崩溃。

但是,您必须将文本视图出口定义为隐式解包。

代码语言:javascript
复制
@IBOutlet strong var textView: NSTextView!

否则,编译器将终止错误。

代码语言:javascript
复制
property 'self.textView' not initialized at super.init call 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24274533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档