我需要使用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本身是可选的。

10-08 07:45