__cxa_throw in fontWithName:size:

时间:2015-04-25 00:34:26

标签: objective-c uikit uifont

我有一个函数可以在iOS 8.3上获得Helvetica Neue字体(尽管我从8.0开始遇到了同样的问题)。

static UIFont *helveticaNeue() {
  return [UIFont fontWithName:@"HelveticaNeue"
                     size:[UIDevice currentDevice].userInterfaceIdiom  == UIUserInterfaceIdiomPad ? 30 : 24];
}

此函数实际上运行正常,但第一次调用时,调试器停止,此函数后的callstack看起来像__objc_msgSend_uncached_impcache - > __cxa_throw

从我读过的其他一些问题来看,这个例外是无害的。但是,每次击中时都必须继续按下真的很烦人。

我尝试了各种同义UIFont函数来尝试获取Helvetica Neue UIFont对象,或者将其作为类或实例方法,并且所有这些函数都会抛出此异常。

我已经读过,我可以通过将我的All Exceptions Breakpoint更改为Objective-C异常来防止这种情况发生,但是我不想这样做,因为这个项目包含大量的C ++代码,这似乎可以防止此代码中的异常中断。

有谁知道如何防止抛出异常,或者如何忽略这一个特定异常?

1 个答案:

答案 0 :(得分:0)

问题是我的应用程序有一个框架,其info.plist文件列出了一个提供的字体,该字体也被应用程序本身列为提供的字体(在应用程序提供的字体中)。删除副本修复了此问题。