While doing some debugging, I printed out the description of the NSDictionary variable, which gives the following:
(NSDictionary *) labelAttrs = 0x00000001
Can someone clarify why this is 1?
I would understand nilor an object pointer, but why 1?
UPDATE
The code:
NSDictionary *labelAttrs = @{NSForegroundColorAttributeName:[UIColor darkGrayColor]};
Crash on launch on iOS5, but not iOS6, but this:
Are new object literals backward compatible with iOS 5?
it looks like you can use new literals with iOS5 (as long as you create against iOS6 and use Xcode> = 4.5 and compile with the latest LLVM - for example, see screen capture). And, according to Apple, I should be fine to use them: https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/ObjCAvailabilityIndex/index.html

Xcode :

, Step over:

: :
NSDictionary *labelAttrs = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor darkGrayColor], NSForegroundColorAttributeName, [UIFont fontWithName:CUSTOMFONT size:size], NSFontAttributeName, [NSNumber numberWithInt:0], NSStrokeWidthAttributeName, nil];
( ) , . , , .
UPDATE: . iOS5 ( UILabel's): NSAttributedString iOS 6?