ios - 崩溃 sizeWithAttributes

标签 ios iphone objective-c

<分区>

我的字典的一个参数看起来是零,但我不知道为什么......我浏览了 SOF,所有的命题都是这样的。

CGSize size;
if ([[[UIDevice currentDevice] systemVersion] 
                compare:@"7.0" options:NSNumericSearch] == NSOrderedAscending) {
    // here it works
    size = [string sizeWithFont:[UIFont fontWithName:@"HelveticaNeue-Italic" 
                                                size:15.0f]];
} else {
    // here it crashes
    size = [string sizeWithAttributes:
       [NSDictionary dictionaryWithObject:[UIFont fontWithName:@"HelveticaNeue-Italic" 
                                     size:15.0f] forKey:NSFontAttributeName]];
}

//控制台输出

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: 
attempt to insert nil object from objects[0]'

最佳答案

[UIFont fontWithName:@"HelveticaNeue-Italic" size:15.0f]

返回 nil(不再可用)因此你实际上是在做

[NSDictionary dictionaryWithObject:nil forKey:NSFontAttributeName];

引发异常。

关于ios - 崩溃 sizeWithAttributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19972709/

相关文章:

iOS 8 分享扩展 Safari 图片

ios - 使用 Google 登录时链接器命令失败,退出代码为 1

iphone - iOS : problem when populating Picker from plist file

iphone - 更改状态栏高度时更改 View 框架?

iphone - UIButton 作为开关

ios - 查找 Xcode 项目的 ${PROJECT_DIR}

android - 使用 animateToRegion() 与 animateCamera() 的优缺点

objective-c - iTunes Apple 事件 API

iphone - 在 iOS 上将属性从一个 Controller 传递到另一个 Controller

objective-c - xcode 上未声明的标识符 __bridge