我很难使用 CoreText。不知道,如果我做错了什么或者是 iOS 自己的错误,但这就是我所拥有的:在 iOS 5.0 中,此代码使应用程序在显示视图时崩溃
- (void)viewDidLoad
{
[super viewDidLoad];
UIFont * font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
NSDictionary * attrs = @{(NSString *)kCTFontAttributeName:font};
NSAttributedString * attrStr = [[NSAttributedString alloc] initWithString:@"Test" attributes:attrs];
CATextLayer * textLayer = [[CATextLayer alloc] init];
textLayer.frame = self.view.frame;
textLayer.string = attrStr;
[self.view.layer addSublayer:textLayer];
}
它生成 EXC_BAD_ACCESS 并打开CoreText TAttributes::TAttributes(__CFDictionary const*):
显示发生异常的汇编程序行。
难道我做错了什么?我挣扎了将近 8 个小时,但仍然不知道发生了什么。
更新
似乎问题是基于这条线
NSDictionary * attrs = @{(NSString *)kCTFontAttributeName:font};
因为当我删除 Font 属性并添加 ForegroundColor 属性时,它突然开始工作。我会尝试深入挖掘,但仍然需要一些帮助。