做一些调试,我打印了一个 NSDictionary 变量的描述,它给出了这个:
(NSDictionary *) labelAttrs = 0x00000001
有人可以澄清这是为什么1
吗?
我会理解nil
或对象指针,但为什么1
呢?
更新
编码:
NSDictionary *labelAttrs = @{NSForegroundColorAttributeName:[UIColor darkGrayColor]};
它在 iOS5 而不是 iOS6 上运行时崩溃,但这是:
似乎说您可以在 iOS5 中使用新的文字(只要您针对 iOS6 构建并使用 Xcode >= 4.5 并使用最新的 LLVM 进行编译 - 例如参见屏幕抓取)。而且,根据 Apple 的说法,我应该可以使用它们:https ://developer.apple.com/library/ios/#releasenotes/ObjectiveC/ObjCAvailabilityIndex/index.html
这是它之前在 Xcode 中的样子:
然后当我跨过时:
注意:这给了我同样的崩溃:
NSDictionary *labelAttrs = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor darkGrayColor], NSForegroundColorAttributeName, [UIFont fontWithName:CUSTOMFONT size:size], NSFontAttributeName, [NSNumber numberWithInt:0], NSStrokeWidthAttributeName, nil];
删除它(以及以下 2 行代码)意味着应用程序运行时不会崩溃。但显然没有属性字符串。
更新:已解决。属性字符串在 iOS5 上不可用(至少对于 UILabel 的):NSAttributedString 在 iOS 6 之前可用吗?