Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 将字体字符数字转换为字符串_Cocoa_Nsstring - Fatal编程技术网

Cocoa 将字体字符数字转换为字符串

Cocoa 将字体字符数字转换为字符串,cocoa,nsstring,Cocoa,Nsstring,我想使用NSString的drawAtPoint例程在字体中绘制一个特定的字符号 为此,我将特定字符的整数值转换为NSString: int characterNumber = 150; //character 150 in a particular font NSString* myString = [NSString stringWithCharacters:(const unichar*)&characterNumber length:1]; 如果字符数小于128,则此操作有效

我想使用NSString的drawAtPoint例程在字体中绘制一个特定的字符号

为此,我将特定字符的整数值转换为NSString:

int characterNumber = 150; //character 150 in a particular font

NSString* myString = [NSString stringWithCharacters:(const unichar*)&characterNumber length:1];
如果字符数小于128,则此操作有效。如果characterNumber大于my font包含的200多个字符,则不会打印任何字符。如果字符数为150,并且我将字符串长度更改为2,则打印字体中的错误字符

这是编码问题吗

这不应该是:

unichar characterNumber=150//特定字体中的字符150


NSString*myString=[NSString stringWithCharacters:&characterNumber长度:1]

问题是,字符0x007F 127是DEL字符,无法打印


我的自定义字体的其他问题是编码问题,必须在Fontographer中解决,而不是在NSString中解决

需要更多的信息。你能编辑这个问题并给出characterNumber的声明,它是如何赋值的,该值是/代表什么,等等吗。?characterNumber是相关字符的ASCII值,因此如果我试图在字体中的位置100处绘制字符,我会尝试将100转换为一个字符串,设置字体并在屏幕上绘制该字符串。如果使用Unicode而不使用强制转换,则至少应将characterNumber声明为unichar-int至少为32位,unichar为16位。但是,具有200个字形的字体并不意味着这些字形占据连续位置,例如0-199。在你的问题中添加更多的细节,也许有人能提供帮助。你是对的,这是一个打字错误。我将一个int的地址传递给unichar*。我将修复上面的代码摘录。我刚刚运行了一个简短的文本,输入的字符号是223。它正确地转换为U+00df。奇怪的是[NSString drawAtPoint]没有正确呈现该符号。字符似乎一直工作到字符126。字符127不显示在drawAtPoint调用中。