Dvi*_*evy 0 xcode cocoa-touch objective-c uifont ios
我收到一个错误,我不明白如何解决.错误是:
Sending 'CGFloat' (aka 'float') to parameter of incompatible type 'CGFloat *' (aka 'float *');
Run Code Online (Sandbox Code Playgroud)
对于线路:
[xlabel.text drawAtPoint:CGPointMake(labelRect.origin.x, labelRect.origin.y)
forWidth:labelRect.size.width
withFont:myFont
minFontSize:5.0
actualFontSize:myFont.pointSize
lineBreakMode:UILineBreakModeWordWrap
baselineAdjustment:UIBaselineAdjustmentAlignCenters];
Run Code Online (Sandbox Code Playgroud)
错误指向actualFontSize:myFont.pointSize.myFont是一个UIFont.我这样设置:UIFont *myFont = [UIFont systemFontOfSize:17.0];
这个错误意味着什么,以及如何修复它的想法?
来自文档:
actualFontSize输入时,指向浮点值的指针.返回时,此值包含用于呈现字符串的实际字体大小.
这意味着您必须通过引用变量来传入指针.为此,请使用"&"运算符&
例:
CGFloat outSize = 0;
[xlabel.text drawAtPoint:CGPointMake(labelRect.origin.x, labelRect.origin.y)
forWidth:labelRect.size.width
withFont:myFont
minFontSize:5.0
actualFontSize:&outSize
lineBreakMode:UILineBreakModeWordWrap
baselineAdjustment:UIBaselineAdjustmentAlignCenters];
NSLog(@"%f", outSize);
Run Code Online (Sandbox Code Playgroud)
drawAtPoint:将设置outSize指向的值,以便您可以打印结果.这里的原因是,你只能通过return语句在C中返回1个值.要获得多个结果,您可以传入指针以允许该方法设置其他结果.
| 归档时间: |
|
| 查看次数: |
7910 次 |
| 最近记录: |