我需要使用NSGlyph作为Swift字典中的键
var glyph:NSGlyph //set to a glyph
var glyphDict:[NSGlyph:CGPath] //Will contain a cache of glyphs previously converted to paths
var path = glyphDict[glyph]
但我得到:
错误:“ [NSGlyph:CGPath]?”没有名为“下标”的成员
因此,我猜苹果还没有为NSGlyph定义下标?
我已经从Apple的VectorTextLayer示例代码中找到了该代码,该示例代码成功地将CGGlyph用作CFDictionary中的键。我怎样才能使其适应Swift字典?
CGPathRef path = (CGPathRef)CFDictionaryGetValue(glyphDict, (const void *)(uintptr_t)glyph);
我知道代码将CGGlyph包装到uintptr_t中。我该如何在Swift中做到这一点?
最佳答案
我认为您在问题中复制了不同的代码。当您用作字典的变量是可选的,因此声明为:
var glyphDict:[NSGlyph:CGPath]?
要解决此问题,您可以使用可选的链接从字典中进行读取:
var path = glyphDict?[glyph]
请注意,
path
本身是可选的。