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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top