2

我正在下载某些字体文件并将其存储在文档目录中。下载后,我尝试使用以下代码注册此字体文件:

@objc func registerAndSetFontTapped(_ sender: UIButton) {
  var error: Unmanaged<CFError>?
  let fontURL = fontsFolder.appendingPathComponent("Muli-Bold.ttf")

  if CTFontManagerRegisterFontsForURL(fontURL as CFURL, .user, &error) {
    self.showFontListVC()
  }else if let thisError = error?.takeRetainedValue() {
    print(thisError)
    if let fontError = CTFontManagerError(rawValue: CFErrorGetCode(thisError)) {
      print(fontError.rawValue)
    }
  }
}

此代码在控制台中打印错误如下:

Error Domain=com.apple.CoreText.CTFontManagerErrorDomain Code=-2 "Could not register the font file(s)" UserInfo={NSDescription=Could not register the font file(s), CTFontManagerErrorFontURLs=(
    "file:///Users/rohansanap/Library/Developer/CoreSimulator/Devices/8A875331-5ADB-4DD0-986F-074338F96CC8/data/Containers/Data/Application/035078D5-3E92-4917-99E3-A20A61433F87/Documents/fonts/Muli-Bold.ttf"
)}
-2

我也收到同样的范围错误.persistent。上面的代码成功地为两个范围注册了字体,即 ..none.process.

另外,我试图找出这是什么错误,但根据文档CTFontManagerError,没有任何情况对应于 rawValue -2。这里到底发生了什么?

我的最终目标是注册一种字体并在应用程序启动时保持注册。

4

0 回答 0