Pergunta

Não quero desistir antes de perguntar, porque esta é uma funcionalidade básica em qualquer IDE Java/.Net.O compilador me diz:

Incomplete implementation of class...
Method definition for '-someMethod:' not found

mas clicar, clicar com o botão direito, orar e pesquisar no Google não me levaram a criar automaticamente um esboço de método a partir disso. O Xcode pode criar um stub de método para mim e me levar até lá?

Se não, por que isso aconteceria (além de "programadores reais gostam de digitar")?

Editar: Eu pensei que opção-escape basicamente resolveu isso para mim, mas não resolve.Parece não estar ciente de todas (alguma?) Interfaces que minha classe implementa.

Foi útil?

Solução 4

O que o OP (eu) está falando é em Java, onde a interface está implícita. No entanto, o caso o mesmo no Xcode é aquele em que ainda não há método definido em nenhuma interface.

O AppCode lida com este caso, o Xcode não (a menos que alguém responda a essa pergunta, mas está aqui há um tempo):

AppCode popover showing method creation

Mais tarde: As pessoas responderam à pergunta, mas o Xcode ainda não faz isso.

Outras dicas

Isso pode ser uma opção para registrar uma solicitação de recurso à Apple. Normalmente, projetarei meu arquivo @Interface e, em seguida, farei uma cópia/colar do @Interface para a @implementação, mantendo a digitação no mínimo absoluto.

No entanto, seria bom poder clicar no aviso e ter o Xcode simplesmente criar o método no Botto da @implementation.

Nota: É válido manter o ponto e vírgula após a @implementação

@interface PCStackValue : NSObject <NSCoding, NSCopying>
{
}

- (id) initWithDisplayRadix:(int) newRadix;

@end

@implementation PCStackValue

- (id) initWithDisplayRadix:(int) newRadix;
{
   … do something;
}
@end    

Eu não me importo com esse comportamento.Por um lado, a implementação não existe necessariamente, pois pode ser dinâmica.Eu também categorizar meu código usando #pragma mark - Minha categoria e deseja as implementações em locais específicos no arquivo de origem.

No entanto, concordo - não quero digitar o esboço em si.

Você pode fazer isso por método.
Vá para o seu arquivo de implementação e comece a digitar - prefixo e pressione ESC e você verá conclusões válidas correspondentes ao prefixo.Você deve começar digitando um - ou + para que isso funcione, por exemplo, métodos e métodos de classe, respectivamente.

Às vezes você não sabe o que deve implementar!Abra o Issue Navigator e clique no retângulo de divulgação.Deveria haver uma linha que diz Método declarado aqui.Clique nele para ver o método que carece de implementação.

O que você está procurando não existe. Eu apenas uso preenchimento automático (geralmente funciona para mim) ou copiar/colar.

O que faz você pensar que o Xcode teria um recurso apenas porque o Eclipse tem? O Eclipse tem ~ 10 anos, enquanto o Xcode tem ~ 23 anos. Quaisquer recursos copiados provavelmente estariam na outra direção.

No entanto, seria uma ótima solicitação de recurso. Talvez abrindo o menu de preenchimento automático em uma linha vazia dentro @implementation .. @end poderia fornecer uma lista de métodos ainda não implementados.

Mas não tenho certeza de quão bem funcionaria na prática, por causa de NSObject categorias. Pode literalmente haver milhares de métodos "ainda não implementados" no menu de conclusão automática. Mas poderia pelo menos mostrar alguns dos mais prováveis.

Parece que esse erro/aviso de compilação também seria um bom candidato para o novo recurso "Fix It".

Além disso: aprenda a digitar mais rápido: P

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