我想创建现有swift类的类别,但IDE中没有选项可以这样做.
知道swift项目中是否存在类别?或者如何在swift项目中实现类似的功能?
如果你根据标题来讨论这个问题,但对蒙古语不感兴趣,你可能会寻找这个问答:
我一直在学习Swift,以便为传统的蒙古语开发iOS应用程序.问题是传统的蒙古语是从上到下,从左到右垂直书写的.我的问题是如何垂直显示文本并仍然有换行功能?
如果你和我待在一起,我会试着更清楚地解释这个问题.下面是我想要实现的文本视图的图像.如果外国脚本将你抛弃,我已经包含了遵循相同模式的英文文本.事实上,如果应用程序有任何英文文本要显示,这应该是它的外观.

对于简单的单线UILabel,顺时针旋转90度就可以了.但是,对于多行UITextView,我需要处理换行.如果我只做一个普通的90度旋转,写的第一件事最终会在最后一行.
到目前为止,我已经制定了一个我认为可以解决这个问题的计划:

这应该照顾文本包装.
我可以做镜像字体.但是,我不知道如何为UITextView的旋转和镜像执行Swift编码.我发现以下链接似乎给解决方案的部分提示,但它们都在Objective C中,而不是在Swift中.
应用程序商店中有传统的蒙古应用程序(像这样和这个),但我还没有找到任何人共享他们的源代码,所以我不知道他们在幕后做什么来显示文本.我打算让我的代码开源,以便将来的其他人不会为数百万阅读传统蒙古语的人开发应用程序.你可以给予这项努力的任何帮助,不仅是我,也是蒙古人民.即使你不了解自己,提出这个问题以使其更加明显也会有所帮助.
@ sangonz的答案仍然是一个很好的答案,但我暂时将其标记为已接受的答案,因为我无法让一切顺利.特别:
到目前为止,我一直在使用上面提到的原始方法,但我真正想要的是获得类似@sangonz提议的工作方式.
我现在也在考虑其他方法
我正在创建一个类似于a的结构String,除了它只处理Unicode UTF-32标量值.因此,它是一个数组UInt32.(有关更多背景,请参阅此问题.)
我希望能够将自定义ScalarString结构用作字典中的键.例如:
var suffixDictionary = [ScalarString: ScalarString]() // Unicode key, rendered glyph value
// populate dictionary
suffixDictionary[keyScalarString] = valueScalarString
// ...
// check if dictionary contains Unicode scalar string key
if let renderedSuffix = suffixDictionary[unicodeScalarString] {
// do something with value
}
Run Code Online (Sandbox Code Playgroud)
为此,ScalarString需要实现Hashable协议.我以为我可以这样做:
struct ScalarString: Hashable {
private var scalarArray: [UInt32] = []
var hashValue : Int {
get {
return self.scalarArray.hashValue // error
} …Run Code Online (Sandbox Code Playgroud) 我挣扎,未能超过十分钟在这里,我放弃.我需要一个Int转换为斯威夫特一个字符并不能解决它.
题
你如何在Swift中转换(强制转换)Int(整数)到Character(char)?
说明性问题/任务挑战
生成一个for循环,打印字母'A'到'Z',例如:
for(var i:Int=0;i<26;i++) { //Important to note - I know
print(Character('A' + i)); //this is horrendous syntax...
} //just trying to illustrate! :)
Run Code Online (Sandbox Code Playgroud) 我们知道我们可以用UTF8代码单位打印每个字符吗?那么,如果我们有这些字符的代码单元,我们如何用它们创建一个String?
我想在Swift中使用十六进制值编写Unicode字符串.我已经阅读了String和Character 的文档,所以我知道我可以直接在字符串中使用特殊的Unicode字符,如下所示:
var variableString = "Cat?" // "Cat" + Double Exclamation + cat emoji
Run Code Online (Sandbox Code Playgroud)
但我想使用Unicode代码点来做到这一点.文档(和这个问题)显示了字符,但不清楚如何为字符串做.
(注意:虽然答案现在对我来说显而易见,但在不久之前它并不明显.我在回答下面的问题,作为学习如何做到这一点的一种方法,也是为了帮助自己理解Unicode术语和Swift Characters和Strings如何工作.)
NSMutableString *str, *str1;
Run Code Online (Sandbox Code Playgroud)
//在这里分配
我正在使用
[str appendString:str1]不工作.
[str appendFormat:str1]不管用.
那么,如何追加NSMutableString另一个NSMutableString.
@str是一个empty string初始化nil.str1有一些价值.[str appendString str1]回报null
我们知道String.utf16提供了codeunits或String.unicodeScalars提供了标量.
如果我们通过删除一些元素来操纵codeunits和unicodeScales等,有没有办法构造回来的结果字符串?