У меня есть класс, определенный во внешней паре файлов, назовем их engine.h и engine.m . Также мне был предоставлен файл «engineListener.h».
вот как они выглядят:
Файл engine.h:
@interface coreEngine: NSObject {
NSString *displaydValue;
id <coreEngineListener> listener;
}
-(coreEngine*)initWithListener:(id <coreEngineListener>) _listener;
//...
Файл engine.m
//imports here
@interface coreEngine()
-(Boolean) MyOperation: ... ... (etc)
@end
Файл engineListener.h
//imports here...
@class coreEngine;
@protocol coreEngineListener <NSObject>
@required
-(void) someVariable:(coreEngine *)source;
@end
Теперь, в моем myController.h У меня есть это:
//... imports and include ...
@interface myController : NSObject
{
coreEngine *PhysicsEngine;
}
- (IBAction)doSomething:(id)sender;
А в myController.m вот что у меня есть:
-(id) init
{
NSAutorelease *pool = [[NSAutoreleasePool alloc] init];
coreEngine *PhysicsEngine = [[coreEngine alloc] init];
[PhysicsEngine release];
[pool drain];
return self;
}
- (IBAction)doSomething:(id)sender
{
[PhysicsEngine MyOperation:Something];
}
Дело в том, что код компилируется правильно, но «[PhysicsEngine MyOperation: Something]» ничего не делает. Я уверен, что я инстанцирую свой класс неправильно. NSObject, определенный в "engine.h engine.m и enginelistener.h", который я должен загрузить, не был создан мной, и у меня нет средств для его изменения.
Я пытался делать какие-то фиктивные / случайные вещи, основываясь на том, что я видел в Интернете, не зная на 100%, что я делал. Я даже близко не знаком с ObjectiveC или C / C ++, поэтому будьте осторожны со мной. Я совершенно нуб на эту тему.
Я использую Xcode 4, и у меня также есть доступ к XCode 3.2.6
Как мне правильно загрузить свой класс?
Любой совет приветствуется.
Спасибо