Objective c UIFont fontWithName返回零

Objective c UIFont fontWithName返回零,objective-c,uifont,Objective C,Uifont,此代码在字体中返回nil 我将打开的sans ttf文件添加到项目文件夹中 我错过了什么 UIFont *font = [UIFont fontWithName:@"OpenSans-Bold" size:fontSize]; if (font) { [str addAttribute:NSFontAttributeName value:[UIFont fontWithName:font size:fontSize] range:NSMakeR

此代码在字体中返回nil

我将打开的sans ttf文件添加到项目文件夹中

我错过了什么

UIFont *font = [UIFont fontWithName:@"OpenSans-Bold" size:fontSize];
    if (font)
    {
        [str addAttribute:NSFontAttributeName value:[UIFont fontWithName:font size:fontSize] range:NSMakeRange(location, length)];
        label.attributedText = str;
    }

首先,您的.ttf文件是否已在.plist文件中注册? 第二,您的字体是否添加到“复制包资源”(在目标->构建阶段下)

接下来,请尝试使用此代码列出所有可用字体及其名称。这样,您可以确保为字体使用正确的标识符

for (NSString* fontFamily in [UIFont familyNames]) {
    NSArray *fontNames = [UIFont fontNamesForFamilyName:fontFamily];
    NSLog (@"%@: %@", fontFamily, fontNames);
}
编辑

因为这个答案有点旧,我用对应的Swift 3.0的答案更新了它:

_ = UIFont.familyNames.map {
    let fontNames = UIFont.fontNames(forFamilyName: $0)
    print("Font Family: \($0), Font Names: \(fontNames)\n")
}

谢谢大家!我也使用了这个链接。谢谢,你在回答问题时说了一个没有人关注的问题!-->第二,您的字体是否添加到“复制包资源”中?(在目标->构建阶段下)