gpt4 book ai didi

Xcode 6 + Swift + NSTextViewDelegate = 编译错误

转载 作者:可可西里 更新时间:2023-11-01 01:06:52 25 4
gpt4 key购买 nike

我正在尝试用 Swift 重写我的测试应用程序。而现在这似乎是不可能的......或者我错过了什么。看:

  1. 创建新的 OS X 应用程序项目。
  2. 选择基于文档的应用程序、Core Data 和 Swift 语言。
  3. 在任何通用类上采用 NSTextViewDelegate 协议(protocol)。
  4. 构建并得到编译错误。

看起来像个 bug !如果我删除 NSTextViewDelegate 协议(protocol),一切都很好。但我需要那个协议(protocol)。它适用于 Xcode 5 和 Objective-C。 Xcode 6 beta1 和 beta2 都有这个问题。有什么想法吗?

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

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

    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

最佳答案

我遇到了同样的问题。

为了变通,我将 NSTextView 子类化,并按如下方式完成我自己的委托(delegate)。

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

关于Xcode 6 + Swift + NSTextViewDelegate = 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24274533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com