В настоящее время я снова начинаю работать с Objective-C. Проблема, с которой я сталкиваюсь, заключается в передаче переменных собственному методу инициализации экземпляра класса.
У меня есть эта пользовательская инициализация в моем @interface:
-(id)init
{
if(self = [super init]) {
level = 1;
NSLog(@"Debug response");
}
return ([NSObject init]); // return self;
}
И вот основной класс моего приложения:
#import "AppDelegate.h"
#import "PlayableCharacter.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
NSArray *params = [NSArray arrayWithObjects: @"Elf", nil];
PlayableCharacter *allendar = [[PlayableCharacter alloc] init:params];
}
@end
Может кто-нибудь объяснить, что я делаю неправильно? Я думал, что объект NSArray будет соответствовать профилю C-объекта "id". Является ли указание параметров инициализации незаконным или это должно быть сделано по-другому?
Ошибка гласит: «Нет видимого @interface для« PlayableCharacter »объявляет селектор« init: »»