#objective-c
#objective-c
Вопрос:
В C мы будем передавать указатель на функцию как
bool getData(REMOTE_ID msId,RsEvent*amp; pEvent);
Как объявить это в Objective C?
// ?
-(BOOL)getData:(REMOTE_ID)msId withEvent:(RsEvent*)pEvent;
Но мне нужно использовать указатель на ссылку ( RsEvent*amp;
). Здесь я использовал только указатель ( RsEvent*
) в качестве типа данных.
Ответ №1:
Вам нужно использовать указатели для имитации ссылки в 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:amp;event];
...
Ответ №2:
(Кстати, вы имеете дело не с указателем на ссылку, а со ссылкой на указатель.) Разве вы не можете просто использовать аннотацию того же типа в методе Objective-C?
- (BOOL)getData:(REMOTE_ID)msId withEvent:(RsEvent*amp;)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:amp;event];
Комментарии:
1. @KennyTM @Jonathan: Я попробую использовать объявление. Спасибо, что помогли мне понять. Мне нужно хорошо разобраться с концепциями указателей.