Xcode 在删除桥接后从 Interface Builder 拖动时崩溃 Header

Xcode crashes when dragging from Interface Builder after deleting Bridging Header

我尝试在 Swift 项目中使用一些 Objective-C 代码,但当我找到另一种实现结果的方法时,最终删除了上述代码和 bridging-header。除了我尝试通过使用助理编辑器从 IB 拖动到 .swift 文件来创建新的插座连接时,一切似乎都工作正常(即 运行 构建、IB 连接中的现有插座等)。我认为这与删除桥接 header 有关,但我不确定是什么。我已经尝试 运行 清理并重新启动计算机,但没有成功。

编辑:应该提到问题不是无法拖动,而是 Xcode 在输入插座名称并按回车键后崩溃。

编辑 2:这是崩溃时 Xcode 的错误输出:

Exception Codes:       0x0000000000000000, 0x0000000000000000

Application Specific Information:
ProductBuildVersion: 6D2105
UNCAUGHT EXCEPTION (NSInvalidArgumentException): +[IDESwiftSourceCodeGenerator     isTeardownCounterpart:]: unrecognized selector sent to class 0x112de75c0
UserInfo: (null)
Hints: None
Backtrace:
  0  0x00007fff94e37024 __exceptionPreprocess (in CoreFoundation)
  1  0x00000001011d9bb4 DVTFailureHintExceptionPreprocessor (in DVTFoundation)
  2  0x00007fff9212776e objc_exception_throw (in libobjc.A.dylib)
  3  0x00007fff94e39fad +[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation)
  4  0x00007fff94d7fe24 ___forwarding___ (in CoreFoundation)
  5  0x00007fff94d7f998 _CF_forwarding_prep_0 (in CoreFoundation)
  6  0x0000000112d30532 __91-[IDESwiftSourceCodeGenerator prepareToAddPropertyWithName:type:inClassItem:options:error:]_block_invoke_2 (in IDELanguageSupportUI)
  7  0x000000010266ceb4 -[IDESourceCodeGenerator prepareToAddSourceCodeForCounterparts:documentLocationForCounterpartBlock:addSourceCodeForCounterpartBlock:options:error:] (in IDEKit)
  8  0x0000000112d3013f -[IDESwiftSourceCodeGenerator prepareToAddPropertyWithName:type:inClassItem:options:error:] (in IDELanguageSupportUI)
  9  0x0000000112d0b69b -[IDEIBSwiftOutletSourceCodeConnectionContext prepareToInsertSourceCode:] (in IDELanguageSupportUI)
 10  0x000000010c3f0a86 -[IBSourceCodeConnectionEndPointHandler insertOrPrepareToInsertSourceCodeForConnectionContext:prepareOrInsertBlock:] (in IDEInterfaceBuilderKit)
 11  0x000000010c3f0eda -[IBSourceCodeConnectionEndPointHandler insertCodeForConnectionContext:] (in IDEInterfaceBuilderKit)
 12  0x000000010c3f1bbd -[IBSourceCodeConnectionEndPointHandler configuredAndCompletedConnectionWithSourceObject:] (in IDEInterfaceBuilderKit)
 13  0x000000010c184b1b -[IBConnectionManager beginOldSchoolConnectingFromObject:withEvent:inWindow:usingSourceLocator:] (in IDEInterfaceBuilderKit)
 14  0x000000010c184e74 -[IBConnectionManager beginOldSchoolConnectingFromEditorCanvasFrameController:initialEndPoint:withEvent:] (in IDEInterfaceBuilderKit)
 15  0x000000010c270bf5 -[IBEditorCanvasFrameController sendEvent:] (in IDEInterfaceBuilderKit)
 16  0x000000010c497689 -[IBViewEditorCanvasFrameController sendEvent:] (in IDEInterfaceBuilderKit)
 17  0x000000010c25fe85 -[IBEditorCanvasFrame mouseDragged:] (in IDEInterfaceBuilderKit)
 18  0x00007fff8f0cbf12 -[NSWindow _reallySendEvent:isDelayedEvent:] (in AppKit)
 19  0x00007fff8ea5dd76 -[NSWindow sendEvent:] (in AppKit)
 20  0x00000001024a7168 -[IDEWorkspaceWindow sendEvent:] (in IDEKit)
 21  0x00007fff8ea5a312 -[NSApplication sendEvent:] (in AppKit)
 22  0x0000000102250c14 -[IDEApplication sendEvent:] (in IDEKit)
 23  0x00007fff8e983c68 -[NSApplication run] (in AppKit)
 24  0x00007fff8e900354 NSApplicationMain (in AppKit)
 25  0x00007fff939b25c9 start (in libdyld.dylib)

abort() called

Application Specific Signatures:
NSInvalidArgumentException

你检查过你的class和模块是否正确吗?

您可以点击箭头并显示您的 ViewController 实现吗?

您的项目似乎已损坏。您可以尝试将您的出口从您的代码拖放到您的 xib 文件中。

在 .swift 文件中输入:

@IBOutlet var varname:类型!

现在从您的代码拖到您的 xib 文件。