why does this NSLog code print zero's for the values?
Why does this objective-c code print 0's for the values, where as in debugger I can see they have non-0 values:
Code
CGRect currFrame = label.frame; 开发者_运维问答
currFrame.origin.y = currVertPos;
currFrame.origin.x = 0;
currFrame.size.height = expectedLabelSize.height;
currFrame.size.width = maxWidt h;
NSLog(@" currFrame dimensions:x/y/height/width = %d / %d / %d / %d", 0, currVertPos, expectedLabelSize.height, maxWidth);
What is Printed
currFrame dimensions:x/y/height/width = 0 / 0 / 0 / 0
All these values have CGFloat
type but you're trying to print them as int
s. Just replace %d
with %f
.
P.S. Apple devs have to print CGRect
s occasionally so they came up with some handy methods. Try NSLog(@"currFrame dimensions: %@", NSStringFromCGRect(currFrame))
.
Because you are using %d
hence formatting the number as integers. Try using %f
or %lf
instead:
NSLog(@" currFrame dimensions:x/y/height/width = %f / %f / %f / %f", 0, currVertPos, expectedLabelSize.height, maxWidth);
精彩评论