【问题标题】:Crash on sizeWithAttributes [duplicate]sizeWithAttributes 崩溃 [重复]
【发布时间】:2013-11-27 04:07:04
【问题描述】:

我的字典的一个参数看起来是 nil,但我不知道为什么......我浏览了 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]'

【问题讨论】:

  • @MartinR 比你的评论。如果您将其发布为答案,我会接受。或者问题可能会作为重复而关闭。
  • 错误,没有。重复的问题不需要接受答案。
  • @trojanfoe 这就是我写“或”的原因;)无论如何,投票结束我的问题。

标签: ios iphone objective-c


【解决方案1】:
[UIFont fontWithName:@"HelveticaNeue-Italic" size:15.0f]

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

[NSDictionary dictionaryWithObject:nil forKey:NSFontAttributeName];

引发异常。

【讨论】:

  • 为什么不简单地投票给表明我@MartinR 的骗子?
  • 我有,只是在创建字典时添加了异常的原因,考虑到他如何表达问题,这对 OP 来说可能并不明显......
  • 阅读附加链接后,我看到了发生的事情,不需要更多解释。鉴于我只是问了一个问题并得到了答复,因此您的评论相当苛刻。 @MartinR 的回答对每个人来说都足够了。
  • 我真的没有冒犯的意思。
猜你喜欢
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 2018-10-12
  • 2016-03-14
  • 2014-07-19
  • 1970-01-01
相关资源
最近更新 更多