我有一个功能可以在iOS 8.3上获取Helvetica Neue字体(尽管自8.0以来我遇到了同样的问题)。
static UIFont *helveticaNeue() {
return [UIFont fontWithName:@"HelveticaNeue"
size:[UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad ? 30 : 24];
}
该函数实际上运行正常,但是第一次调用调试器时,调试器停止,此函数之后的调用栈看起来像
__objc_msgSend_uncached_impcache
-> __cxa_throw
。从我读过的其他一些问题来看,此异常是无害的。但是,每次被击中都必须继续击打确实很烦人。
我尝试了各种同义的
UIFont
函数来尝试获取Helvetica Neue UIFont
对象,或将其设置为类或实例方法,并且所有这些均引发此异常。我读过我可以通过将“所有异常”断点更改为“Objective-C”异常来防止这种情况的发生,但是我不想这样做,因为该项目包含大量的C++代码,而且看起来这样可以防止此代码中出现异常中断。
有谁知道如何防止引发异常,或者如何仅忽略这一特定异常?
最佳答案
问题是我的应用程序有一个框架,该框架的info.plist文件列出了提供的字体,该字体也被应用程序本身(在应用程序提供的字体中)列为提供的字体。删除重复项可以解决此问题。
关于objective-c - __cxa_throw in fontWithName :size:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29859663/