如何将指针作为参数传递给函数 - Objective C

时间:2011-05-02 13:55:20

标签: objective-c

在C ++中,我们将指针传递给函数

bool getData(REMOTE_ID msId,RsEvent*& pEvent);

如何在Objective C中声明这个?

// ?
-(BOOL)getData:(REMOTE_ID)msId withEvent:(RsEvent*)pEvent;

但是我需要使用指针来引用(RsEvent*&)。我这里只使用指针(RsEvent*)作为数据类型。

2 个答案:

答案 0 :(得分:2)

您需要使用指针来模拟C(和Objective-C)中的引用:

-(BOOL)getData:(REMOTE_ID)msId withEvent:(RsEvent**)pEvent {
   // do stuff with msId and *pEvent
}

并将参数作为指针传递:

RsEvent* event;
BOOl res = [foo getData:msId withEvent:&event];
...

答案 1 :(得分:1)

(顺便说一下,你没有处理指向引用的指针,而是指向指针的引用。)你不能在Objective-C方法中使用相同类型的注释吗?

- (BOOL)getData:(REMOTE_ID)msId withEvent:(RsEvent*&)pEvent;

我认为这应该有用,但如果没有,你可以使用指向指针的指针:

- (BOOL)getData:(REMOTE_ID)msId withEvent:(RsEvent**)pEvent {
  useEvent(*pEvent); // when using the event, you need to dereference the pointer
}

发送包含活动地址-getData:withEvent:消息:

[obj getData:SOME_ID withEvent:&event];