1

私の辞書の引数は 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]'
4

1 に答える 1

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

返品nil(利用できなくなりました)したがって、あなたは本質的にやっています

[NSDictionary dictionaryWithObject:nil forKey:NSFontAttributeName];

これは例外を発生させます。

于 2013-11-14T08:26:55.627 に答える