我想创建一个通过引用获取CGFloat的方法。
我可以这样做吗?
- (void)doStuff:(CGFloat*)floatPointer
我想这看起来必须与其他具有两颗恒星的对象指针不同。此外,我不确定我是否必须做以下事情:
- (void)doStuff:(const CGFloat*)floatPointer
当然,不知道如何为该floatPointer分配CGFloat值。也许&floatPointer = 5.0f;
?
有人可以提供一些例子并解释这些吗?太棒了!
答案 0 :(得分:9)
objective-c仍然是c,所以
-(void) doStuff (CGFloat *) f
{
*f = 1.2;
}
用
打电话CGFloat f = 1.0;
[self doStuff:&f];
答案 1 :(得分:3)
如果您通过引用传递CGFloat,那么访问它很简单:
- (void)doStuff:(CGFloat*)floatPointer {
*floatPointer = 5.0f;
}
说明:当您获得引用时,需要取消引用指针(使用*)来获取或设置值。
答案 2 :(得分:2)
如果你(讨厌指针和;-)更喜欢objective-c ++通过引用传递,以下是另一种选择:
-(void) doStuffPlusPlus:(CGFloat &) f
{
f = 1.3;
}
通过
打电话CGFloat abc = 1.0;
[self doStuffPlusPlus:abc];
并且,您需要将源文件名从???。m重命名为???。mm