2012-04-05 3 views
-1

Если у вас есть указатель C, который был определен в методе и пытается вернуть его из метода объекта в Objective C, что вы помещаете в качестве типа возвращаемого объекта для метода?Как вернуть ссылку на указатель C из метода Objective-C?

Например, я использую код, который преобразует UIImage в карту изображений RGBA (как видно here) - но код хранит указатель C на память, которая неясна, как вернуться.

- (??what goes here??) returnTextureRGB 
{ 
    // ... other code ... 
    void *imageData = malloc(height*width *r); 
    // ... other code ... 
    return(imageData); 
} 

Каков правильный тип объекта для объявления о возврате?

ответ

1

Я не знаю, почему это связано с C#, однако Objective-C является надмножеством C, поэтому каждый синтаксис C также является допустимым синтаксисом Objective-C.

Just place void* как обратный тип.

+0

Уточнение: Цель-C. (C# была опечаткой - старые привычки и старые задания сильно усложняются.) Спасибо! – Praxiteles

0

Ну, вы упомянули Objective-C, поговорите о C# ... Так что непонятно, что именно вы просите. Для C# вы можете использовать любой тип, который вы хотите, если его размер достаточен для хранения sizeof(void *) количества байтов (что зависит от архитектуры, то есть 64 бит по архитектуре 86_64) и имеет такое же выравнивание (хотя выравнивание может быть выполнено, вокруг). Например, ulong будет делать. Objective-C прозрачно поддерживает C, поэтому просто используйте тип данных указателя как есть.

Смежные вопросы