Como inicializar uma subclasse de NSObject no iPhone?
-
03-07-2019 - |
Pergunta
Eu quero escrever alguns métodos em uma classe para que outras classes podem chamar esses métodos usando [instance methodName:Parameter]
.
Se a classe é uma subclasse de UIViewController
, posso usar initWithNibName
para inicializar-lo. Mas eu quero escrever os métodos em um de NSObject subclasse, como posso inicializar-lo?
Solução 2
Eu acho isso pode funcionar:
TheClass *newObject = [[TheClass alloc] init];
//do something here
[newObject release];
Outras dicas
iphony é correto, mas ele ou ela não diz que você precisa escrever o método init-se. Seu método init geralmente deve ser algo como isto:
- (id) init
{
if (self = [super init])
{
myMember1 = 0; // do your own initialisation here
myMember2 = 0;
}
return self;
}
Embora o documentação maçã diz
O método init definido na classe NSObject faz nenhuma inicialização; ele simplesmente retorna auto.
e pode apenas ser tentado a escrever
- (id) init
{
myMember1 = 0; // do your own initialisation here
myMember2 = 0;
return self;
}
Isso é errado e não seguir o que é explicitamente declarado na documentação:
Em uma implementação personalizada deste método (init), você deve chamar de super de designado initializer então inicializar e retornar o novo objeto.
DEVE. Não deveria, poderia, deveria, etc.
Você não deve assumir o init do NSObject não mudar no futuro; nem a superclasse a partir do qual seus deriva classe personalizada.