gpt4 book ai didi

ios - 在 Playground 中加载和注册 CGFonts

转载 作者:行者123 更新时间:2023-11-28 13:18:48 24 4
gpt4 key购买 nike

有没有办法在 Swift Playground 的上下文中构建 CGFontRef?当以下代码在 playground 中运行时,'font' 为 nil:

let path = NSBundle.mainBundle().pathForResource("FiraSans-Medium", ofType: "otf")
let provider: CGDataProviderRef = CGDataProviderCreateWithFilename(path)
let font = CGFontCreateWithDataProvider(provider)
let error: UnsafeMutablePointer<Unmanaged<CFError>?> = nil
if (!CTFontManagerRegisterGraphicsFont(font, error)) { ...

类似的代码在正在运行的应用程序的上下文中运行良好,所以我怀疑 CG init 的一些关键位没有发生。

最佳答案

尝试将您的字体放在文档目录中

let directory =  NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false, error: nil)!

它将像这样返回您的 playground 文档目录:

file:///var/folders/f9/yrxcqv_10m57prx9lwts4qy80000gq/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.Relative-Time-Formating-B3CC63A2-BAE4-4C6B-A482-1A0F14C27D9D/Documents/

删除前 7 个字符,打开您的查找器并在“前往”菜单中选择“前往文件夹”或按下键盘上的 command-shift-G

/var/folders/f9/yrxcqv_10m57prx9lwts4qy80000gq/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.Relative-Time-Formating-B3CC63A2-BAE4-4C6B-A482-1A0F14C27D9D/Documents/

将你的 Playground 路径粘贴到那里,你将被重定向到你应该放置字体的文件夹。

在 Playground 中,您可以使用这种方法找到您的字体:

let documentsUrl = NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false, error: nil)!
let documentsPath = documentsUrl.path!
let filePath = documentsPath.stringByAppendingPathComponent("FiraSans-Medium.otf")
let foundIt = NSFileManager().fileExistsAtPath(filePath) // true

关于ios - 在 Playground 中加载和注册 CGFonts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27437301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com