У меня есть глупая вопрос о передаче указателя.Передача указателя на функцию в объекте-c
Я это:
@interface MyClass : NSObject
myobj* foo;
-(void)doSomething:(myobj*)aObj;
@end
@implementation MyClass
-(void)doSomething:(myobj*)aObj
{
cFuncCall(&aObj); //alloc memory and init the object
}
-(id)init
{
//init stuff...
[self doSomething:foo]; // foo retun 0x0!!!
}
@end
почему возвращение Foo ноль ??? Он должен быть инициализирован cFuncCall! [обновление]
Да, проблема в том, что foo не изменяет внешний вид doSomething. Я попытался с myobj ** но Foo по-прежнему ноль ... Это реальный код:
Я объявляю FMOD::DSP *lowpassDSP;
в интерфейсе класса. Не задано свойство.
Это функция, которая может инициализировать lowpassDSP. -(void)configFilter:(FMOD::DSP**)dsp { system->createDSPByType(FMOD_DSP_TYPE_LOWPASS, dsp); baseChannel->addDSP(*dsp, 0); }
и это вызов: [self configFilter:&lowpassDSP];
в configFilter переменная дсп правильно инициирована но lowpassDSP равна нулю после вызова configFilter.
пожалуйста показать код 'cFuncCall' – swegi
cFuncCall является частным API и я не код, но функция выделяет память и инициализировать объект. В doSomthing, aObj правильно выделен, и он отлично работает. – Chiodo