gpt4 book ai didi

objective-c - CGFloat 还是 CGFloat *?

转载 作者:行者123 更新时间:2023-11-28 18:07:08 27 4
gpt4 key购买 nike

我收到一个错误,我不知道如何修复。错误是:

Sending 'CGFloat' (aka 'float') to parameter of incompatible type 'CGFloat *' (aka 'float *'); 

对于行:

[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];

错误指向 actualFontSize:myFont.pointSizemyFont 是一个 UIFont。我是这样设置的:UIFont *myFont = [UIFont systemFontOfSize:17.0];

该错误是什么意思以及关于如何修复它的任何想法?

最佳答案

来自docs :

actualFontSize On input, a pointer to a floating-point value. On return, this value contains the actual font size that was used to render the string.

这意味着您必须通过引用变量来传递指针。为此,您可以使用与号运算符 &

例子:

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);

drawAtPoint:将设置 outSize 指向的值,因此您可以打印结果。这样做的原因是,您只能通过 return 语句在 C 中返回 1 个值。要获得多个结果,您可以传入指针以允许该方法设置其他结果。

关于objective-c - CGFloat 还是 CGFloat *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com