CGFontCreateWithDataProvider 在飞行模式下挂起

2023-11-26

当我打电话给CGFontCreateWithDataProvider 当处于飞行模式时,我的应用程序冻结了。不在飞行模式下,它工作正常。字体存储在设备上,不应进行网络访问。

调用该方法加载本地字体文件时:

[self registerIconFontWithURL:[[NSBundle mainBundle] URLForResource:@"FontAwesome" withExtension:@"otf"]];

的价值url在下面的方法中是:文件:///var/mobile/Applications/48D3DA14-235B-4450-A081-7A6BA6116667/Blah.app/FontAwesome.otf

+ (void)registerIconFontWithURL:(NSURL *)url
{
    NSAssert([[NSFileManager defaultManager] fileExistsAtPath:[url path]], @"Font file doesn't exist");
    CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)url);

//******Freezes after the next line******
    CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);
//******FROZEN******

    CGDataProviderRelease(fontDataProvider);
    CFErrorRef error;
    CTFontManagerRegisterGraphicsFont(newFont, &error);
    CGFontRelease(newFont);
}

iOS 7.1.x、iPhone 5。

我不知道为什么会发生这种情况,也无法在那里找到任何帮助。有谁知道为什么会发生这种情况?

提前致谢!


经过更多搜索后我找到了答案。

根据以下错误报告:https://alpha.app.net/jaredsinclair/post/18555292

如果没有网络连接,CGFontCreateWithDataProvider() 会挂起 在信号量陷阱中if它在应用程序 DidFinishLaunchingWithOptions 期间调用。在下一个运行循环中调用它不会挂起。

正如同一篇文章中所述,调用

[UIFont familyNames]

before CGFontCreateWithDataProvider()

解决问题。我的代码现在看起来像这样并且按预期工作:

+ (void)registerIconFontWithURL:(NSURL *)url
{
    NSAssert([[NSFileManager defaultManager] fileExistsAtPath:[url path]], @"Font file doesn't exist");
    CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)url);

    //THE NEXT LINE IS RELEVANT PART
    [UIFont familyNames];

    CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);
    CGDataProviderRelease(fontDataProvider);
    CFErrorRef error;
    CTFontManagerRegisterGraphicsFont(newFont, &error);
    CGFontRelease(newFont);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CGFontCreateWithDataProvider 在飞行模式下挂起 的相关文章

  • 为什么 GDB 调试器不断冻结 Xcode 4?

    这真是一个奇怪的错误 我正在开发一个使用相机源的 iPhone 项目 并通过 OpenGL 着色器运行它以对其应用效果 然而 每次我在代码中简单地创建一个新的 GLfloat 时 调试器都会在启动时冻结 我无法复制和粘贴文本 因为整个 XC
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • 如何自动为 Swift 类创建初始化程序?

    UPDATE 使用结构而不是类 struct 在很多方面都更好 它有自己的初始化器 这是我的模型课 是否有可能创建init自动方法 每次我都必须将所有变量一一初始化 这会花费很多时间 class Profile var id String
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 应用程序发布后,对如何更新 UITableView 上的数据源感到困惑

    阅读文档后 我似乎误解了有关数据管理的一些概念 所以我试图澄清一些方面 如果这篇文章听起来多余和重复 请道歉 我的应用程序有多个 TableView 每个表视图都有一个 pList 形式的数据源 因此 我有几个属性列表用作我的表的数据源 目
  • 推送/呈现模态视图控制器

    我的视图控制器中有一个表 我们称之为 TVC1 我使用了 TVC1 中的行 以便用户除了 TVC1 上的数据之外还可以输入更多数据 因此 当有人点击 TVC1 中的特定行时 它将显示另一个视图控制器 我们称之为 TVC2 然而 当显示TVC
  • 访问iOS 7隐藏的UITableViewCellScrollView?

    苹果改变了UITableViewCelliOS 7 中的层次结构 使用iOS 6 1 SDK
  • Parse.com - 获取 [PFUser currentUser] 中包含的指针数据

    我正在使用 Parse com iOS SDK 并且我不知道需要调用什么方法来确保 PFUser currentUser 包含其中包含的每个指针的数据 这可能很简单 但是 作为这个平台的初学者 我找不到解决方案 只是为了澄清一下 我试图在下
  • 在 viewWillAppear( ) 中获取空值,但在 viewDidLoad( ) 中获取有效值

    When print mess 被称为来自viewDidLoad函数 它打印预期的内容 但是当从viewWillAppear函数 它给出空输出 完成分配后标签也没有更新viewDidLoad 为什么是这样 主视图控制器 if segue i
  • 多个 ViewController(containerView?childView?viewController 的实例?)

    我需要在另一个视图之上添加一个新视图 带有 ViewController 用户与这个新视图交互了一段时间 然后我想将其删除 在旧版本的 Xcode 中 我可以将其添加为子视图 我现在收到 EXC BAD ACCESS 错误 我不希望添加的视
  • 在 iOS 上的 SceneKit 中导入 3d 模型

    从 URL 导入 obj 文件并将其转换为 SCNNode 时遇到问题 这是代码 swift3 let url URL init string https cloud box com shared static ock9d81kakj91d
  • 检测 UITableView 中的水平平移

    我正在使用 UIPanGestureRecognizer 来识别 UITableView 中的水平滑动 准确地说是在单元格上 尽管它已添加到表格本身 然而 这个手势识别器显然窃取了桌子上的触摸 我已经让 pangesturerecogniz
  • 是否可以使用 iOS SDK 更改 Amazon Cognito 中的用户名?

    正如标题中所写 是否可以更改 Amazon Cognito 用户的用户名 我在文档中找不到任何内容 可以更新preferred username使用 iOS SDK 的 Cognito 用户 使用updateAttributesAPI 调用
  • 删除部分(红色删除按钮),UITableViewController - iOS

    我正在尝试做一个分组的 uitableview 并且我已经激活了编辑选项 我希望用户也能够删除整个部分 而不仅仅是特定行 因此 当您单击 编辑 时 每个表格单元格左侧显示的红色减号按钮也应该显示在各个部分 部分标题左侧 有人知道如何做到这一
  • Xcode UI 测试 - 通过 id 在 Webview 中查找元素

    我们的应用程序是混合的 包含 webview 我正在尝试使用 Xcode UI 测试自动化我们的应用程序 我能够使用以下方法找到网络按钮 let app XCUIApplication app launch let button app s
  • iOS 中的词干 - 不适用于单个单词

    我在用NSLinguisticTagger用于词干提取 我能够获得句子中单词的词干 但无法获得单个单词的词干 以下是我正在使用的代码 NSString stmnt i waited NSLinguisticTaggerOptions opt
  • ios - 使用 SIGPIPE 和 SIG_IGN 的信号函数

    我加入了一个旧项目 我发现了这条线 BOOL application UIApplication application didFinishLaunchingWithOptions NSDictionary launchOptions si
  • OpenGL ES 1.1 顶点缓冲区对象不工作

    我正在使用 OpenGL ES 1 1 开发一款 iPhone 游戏 需要使用顶点缓冲区对象来渲染 500 多个粒子而不降低性能 我的游戏能够使用非 VBO 方法成功绘制 但现在我尝试合并 VBO 却不再绘制任何内容 请帮助我找出我做错了什
  • @fontface - 禅宗购物车中的 403 禁止错误

    我不确定这是否是发布此内容的正确位置 因为我不知道问题出在哪里 基本上 字体现在对我来说真的很痛苦 而且没有任何效果 我尝试从 google fonts 加载字体 但遇到了 IE 问题 所以我决定下载它们并自己提供服务 但现在它无法在任何浏
  • 如何在 iOS 5 中使用 Embed Segue?

    iOS 6 引入了 Embed Segue 允许在 Storyboard 中使用自定义容器控制器 有没有办法在 iOS 5 上复制这个 这里的挑战是子视图控制器的视图通常要添加为父视图控制器的某些容器视图的子视图 因为你不能随机进行序列UI

随机推荐

  • 日期验证 --> 结束日期必须大于开始日期

    我需要编写一个脚本来验证结束日期大于开始日期 此外 开始日期 结束日期不能早于当前日期 这需要在 Django 1 8 中编写 您可以覆盖Model clean 方法 Django doc 为了这 如果您使用ModelForm Django
  • 拖动表单结束时未发送 WM_NCLBUTTONUP 消息,怎么办?

    EDIT tl dr 转到第一条评论 这个问题源于我的另一个问题当鼠标在窗体边框上按下时获取 MouseDown 事件 在这个问题中 当用户在表单边框上按下鼠标左键 准备拖动 时 我需要让表单触发一个事件 这非常有效 问题是当用户完成此操作
  • Hibernate 将对象保存到多个会话

    我正在尝试使用休眠写入多个数据库 我已将写入和读 写会话封装在单个会话对象中 但是 当我去保存时 我收到很多错误 这些对象已经与另一个会话关联 非法尝试将集合与两个打开的会话关联 这是我的代码 public class MultiSessi
  • opencv 3 beta / python中的findContours和drawContours错误

    我尝试运行一个示例here import numpy as np import cv2 img cv2 imread final jpg imgray cv2 cvtColor img cv2 COLOR BGR2GRAY ret thre
  • nodejs jade 条件扩展

    我想让我的 Jade 页面根据条件扩展不同的布局 所以我的代码如下所示 if myConditionVariable extends layout1 else extends layout2 block content p here goe
  • 在网页上显示度数符号

    我有一个程序 可以从元数据中提取 GPS 坐标并将结果导入数据库 然后我使用 PHP 在网页上显示数据 我的问题 我最近创建了一个新模板 但无论出于何种原因 它不再显示度数符号 而是显示 我只是觉得奇怪 它适用于一个模板 但不适用于另一个模
  • Pytube 错误:get_throttle_function_name:找不到多个匹配

    我正在尝试从网址 https www youtube com watch v uyVYfSNb Pc list PLBxwSeQlMDNiNt72UmSvKBLsxPgGY Jy 下载 YouTube 播放列表 但收到错误 get thro
  • 如何重置 React 输入的默认值

    我有一组设置了 defaultValue 的 React 输入元素 这些值通过 onBlur 事件更新 我还在页面上执行了另一个操作 用于更新这些输入元素中的所有值 发生这种情况时 有没有办法强制做出反应以呈现新的默认值 我无法轻松使用 o
  • 在 Windows 中通过调用名称调用 Ghostscript?

    我应该怎么做才能在 Windows 中通过调用名称调用 Ghostscript 我将 Ghostscript bin 文件夹添加到 Windows PATH 和 Path 变量 但它不起作用 gswin32c exe 和 gswin32c
  • 在 qUnit 中测试整个页面重定向

    我有以下功能 var redirect function window location href http www google com 我想使用 qUnit 测试这个函数 问题是 当我调用运行测试的 HTML 文档时 一旦它到达调用的测
  • 为什么a[n]在运行时被c接受?

    为什么我们可以在c中做到这一点 int n scanf d n int a n 我认为数组在加载时位于内存中 但上面的示例似乎在运行时有效 我是否误解了什么 你们能帮忙吗 Thanks 我不是 C 方面的专家 但这可能是一个变长数组添加者为
  • 在 swift 中为 for 循环添加延迟

    我有一个编码 问题 我有一个标签 我想每 2 秒动态更改一次文本 我做了以下事情 WELCOME STRING ARRAY let welcomeContainer String Welcome Benvenuti Bienvenue Wi
  • 在asp.net mvc中,如何传递整数数组作为参数

    我有一个控制器函数 以前将整数作为 URL 中的每个部分 我在路由文件中设置 但现在其中一个参数需要是整数数组 这是控制器的操作 public JsonResult Refresh string scope int scopeId retu
  • 如何下载 Google App Engine 上的所有数据存储实体?

    我读了GAE 文档 我似乎不知道如何下载我的所有实体数据 我想做的是将整个内容下载为一个大 TSV 文件 或者我可以轻松地合并到其中的文件 这样我就可以将我的各种实体导入到电子表格中并摆弄它们 但我却被困在了起点 我不明白文档的前几位 本文
  • 如何在android中的imageview中从url网站获取图像

    我试图从 url 网站获取 ImageView 中的图像 但图像没有显示 这段代码有什么问题 这是网址image 这是我的主要活动 ImageView i private Bitmap bitmap Override protected v
  • 如何将 CryptoPP::Integer 转换为 char*

    我想将 myVar 转换为CryptoPP Integer to char 或字符串 代码如下 CryptoPP Integer myVar pubKey ApplyFunction m std cout lt lt result lt l
  • C“块”插入符

    我注意到了该声明涉及脱字号 字符固定在 cdecl org 网站的顶部 cast foo into block int long long returning double double int long long foo 有人可以解释一下
  • 在 Woocommerce 中以编程方式添加带有评级的产品评论

    标题说明了一切 我知道评论是 WordPress 中的原生评论帖子类型 我已经包含了添加评论的代码 但问题是我不清楚如何对评论进行评级以及如何将其与特定产品联系起来 当我使用 comment post ID 时 它似乎没有将评论 评论 分配
  • 无法在 Chromium 嵌入式框架中播放视频 (mp4)

    我正在使用 Windows 窗体应用程序和嵌入式 Chromium 嵌入式框架 CEF 除了视频和音频之外 一切都运行良好 我怎样才能让它发挥作用 提前致谢 您需要使用选项来编译 CEF 以启用proprietary codecs 即 H
  • CGFontCreateWithDataProvider 在飞行模式下挂起

    当我打电话给CGFontCreateWithDataProvider 当处于飞行模式时 我的应用程序冻结了 不在飞行模式下 它工作正常 字体存储在设备上 不应进行网络访问 调用该方法加载本地字体文件时 self registerIconFo