Obj-C / Swift项目中的致命陷阱异常

亚历克斯·W。

我开始将Swift代码集成到我的Obj-C项目中。一切都进行得很顺利,但是今天,当我更新到Xcode 6.1时,事情就一发不可收拾。我从以前运行良好的Swift代码中获得了许多“陷阱”异常。

第一次崩溃是在我的UIFont扩展中。这是我的代码:

class func specialFont() -> UIFont {
    let font = UIFont(name: "FontName", size: 12.0)
    return font!
}

在更新到Xcode 6.1之前,该代码工作正常,但现在在崩溃EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT)dylddyld_fatal_error: 0x1fe1608c: trap(顺便说一句,我没有设置异常断点。)尝试继续执行程序不会生成崩溃日志,它只是进入了生成该异常的无穷循环。同样,在更新Xcode 6.1之前,代码工作正常。

第二次崩溃特别奇怪,因为它仅在设备而不是模拟器上调试时发生。与上述相同的异常信息。这是崩溃的第二部分代码:

let tap = UITapGestureRecognizer(target: self, action: "didTap")
self.addGestureRecognizer(tap)

谢谢你的帮助!

更新

堆栈跟踪如下:

0] dyld_fatal_error
1] dyld_stub_binder
4] Project.FileWhereCrashTriggers.methodTriggeringCrash
5] @objc Project.FileWhereCrashTriggers.methodTriggeringCrash
6] -- continued trace up to call of method crashing

关于这些崩溃的一件奇怪的事情是,它们没有在实际的代码行上触发异常,正如您从堆栈跟踪中可以看到的那样。他们陷入dyld_fatal_error中。

我无法上传任何控制台输出,因为该应用程序在Xcode中运行时从不崩溃,它的调用与EXC_BAD_ACCESS相似。我在非调试模式下触发了崩溃,然后使用管理器查看了设备日志,这是它提供的功能:

异常类型:EXC_BREAKPOINT(SIGTRAP)异常代码:0x0000000000000001,0x00000000e7ffdefe由线程触发:0

Dyld错误消息:找不到符号:__TFSSCfMSSFT21_builtinStringLiteralBp8byteSizeBw7isASCIIBi1__SS引用自:/private/var/mobile/Containers/Bundle/Application/4ABA71F8-A6D1-4E4B-A452-DE339065310A/Project.app/Project

预期位于:/private/var/mobile/Containers/Bundle/Application/4ABA71F8-A6D1-4E4B-A452-DE339065310A/Project.app/Frameworks/libswiftCore.dylib Dyld版本:353.5

亚历克斯·W。

经过更多的实验之后,我能够通过@objc在我的Obj-C代码可以调用的所有swift方法(包括init方法)中使用swift文件中标记来解决这些冲突例如,更改override init(frame: CGRect)@objc override init(frame: CGRect)

顺便说一句:@objc在Xcode 6.0中为什么不“不需要”标志(尽管这可能是最佳做法),我还是有些困惑,但是Xcode 6.1中突然有一个要求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Obj-C / Swift项目中的致命陷阱异常

来自分类Dev

在Swift项目中正确使用Obj-C库

来自分类Dev

从obj c调用swift

来自分类Dev

从obj c调用swift

来自分类Dev

Swift Obj-c模型

来自分类Dev

如何在Swift项目中使用Obj-c库/自定义界面

来自分类Dev

如何通过迦太基在Obj-C项目中使用Swift库

来自分类Dev

iOS Swift方法在obj C项目上调用

来自分类Dev

用于Obj-C的Swift桥接头

来自分类Dev

Swift(DBCamera)无法识别Obj C Init

来自分类Dev

Swift(DBCamera)无法识别Obj C Init

来自分类Dev

将代码从swift转换为obj c

来自分类Dev

从obj-c转换为swift

来自分类Dev

用于Obj-C的Swift桥接头

来自分类Dev

在Swift中使用依赖于其他Obj-C的Obj-C吗?

来自分类Dev

在Swift中使用依赖于其他Obj-C的Obj-C吗?

来自分类Dev

使用CocoaPods的DDMathParser在Obj-C项目中不起作用

来自分类Dev

强制obj-c在访问nil属性时引发异常

来自分类Dev

在Swift中符合Obj-C协议的属性

来自分类Dev

Google广告转换摘要:从Obj-C到Swift

来自分类Dev

在Obj-C中使用Swift协议的实现

来自分类Dev

在Swift中使用Obj-C完成块

来自分类Dev

将Obj-C的Dictionary对象传递给Swift

来自分类Dev

用户默认值从Obj C迁移到Swift

来自分类Dev

Swift布尔文字(Obj-C @YES @NO等效)

来自分类Dev

可以将Obj-C AXObserverCallback转换为Swift吗?

来自分类Dev

通过引用Swift翻译Obj-C pass

来自分类Dev

在Swift中以相同的签名调用Obj-C方法

来自分类Dev

将Swift框架导入到Obj-C