本文介绍了SWIFT错误中的数学(希腊)符号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

今天,我发现我在Swift 3中的应用程序有一个大问题:应用程序的故事板和布局中没有显示所有希腊字母(如图片);所有其他表情符号和特殊字符都可以使用。

这是Swift漏洞吗?我的数学应用程序需要此字符。

推荐答案

我已经检查了您的评论中的三个字符(此类信息需要在您的问题中,而不是在评论中),它们都是数学字母数字符号代码块中的非BMP字符。

"𝛌" //MATHEMATICAL BOLD SMALL LAMDA   U+1D6CC
"𝛗" //MATHEMATICAL BOLD SMALL PHI     U+1D6D7
"𝛿" //MATHEMATICAL ITALIC SMALL DELTA U+1D6FF

iOS

据我测试,iOS 10模拟器中安装的所有字体都没有这些字符的映射字形。

您可能需要:

  • 在您的应用程序中安装支持这些字符的您自己的字体

  • 使用常用希腊字母将这些字符转换为NSAttribtedString

这是一个小代码片段,您可以在iOS的操场上测试:

(λ,φ和δ只是简单的希腊字母U+03BB、U+03C6和U+03B4)

import UIKit

var maStr = NSMutableAttributedString()
let boldFont = UIFont(name: "Times-Bold", size: 18.0)!
maStr.append(NSAttributedString(string: "λ φ", attributes: [NSFontAttributeName: boldFont]))
let italicFont = UIFont(name: "Times-Italic", size: 18.0)!
maStr.append(NSAttributedString(string: " δ", attributes: [NSFontAttributeName: italicFont]))
maStr

如果这不能满足您的要求,您需要更新您的问题并准确解释您的要求。


MacOS(OS X)

在我的OS X El Capitan(10.11.5)中--对不起还没有--我发现有两种字体(在同一字体系列中)可以显示这样的字符。

因此,在可以选择替代字体的普通文本系统中,可以显示这样的数学符号。

例如,您可以在MacOS游乐场进行测试:

import Cocoa

var str = "Hello, playground"

let label = NSTextField(frame: CGRect(x:0, y:0, width: 320, height: 100))
label.stringValue = "𝛌 𝛗 𝛿"

Xcode 8.2.1的情节提要编辑器实际上显示了这些字符。

这篇关于SWIFT错误中的数学(希腊)符号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 10:03