如何通过引用传递和设置CGFloat?

时间:2010-04-22 09:53:53

标签: objective-c

我想创建一个通过引用获取CGFloat的方法。

我可以这样做吗?

- (void)doStuff:(CGFloat*)floatPointer

我想这看起来必须与其他具有两颗恒星的对象指针不同。此外,我不确定我是否必须做以下事情:

- (void)doStuff:(const CGFloat*)floatPointer

当然,不知道如何为该floatPointer分配CGFloat值。也许&floatPointer = 5.0f;

有人可以提供一些例子并解释这些吗?太棒了!

3 个答案:

答案 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