/ / Quando o NSObject não seria declarado como a classe pai? - objetivo-c, classe, nsobjeto

Quando o NSObject não seria declarado como a classe pai? - objetivo-c, classe, nsobjeto

Por exemplo:

@interface Fraction: NSObject {
...

Quando não seria NSObject ser usado e é NSObject a classe pai final para todas as outras classes?

Por favor, sinta-se à vontade para me corrigir em qualquer terminologia incorreta usada.

Respostas:

4 para resposta № 1

Se eu estivesse escrevendo uma subclasse do NSView, eu escreveria:

@interface Fraction: NSView {...

porque minha classe está herdando do NSView. Classes em Objective-C herdam apenas de uma única classe pai. À medida que você trabalha na cadeia do NSView (para sua classe pai, NSResponder), você descobriria que ele eventualmente herda do NSObject.

Eu não tenho certeza sobre a segunda parte do seuquestão. Eu acho que todas as classes no Apple "s Cocoa Frameworks, eventualmente, herdam NSObject, mas não me cite sobre isso. Não há razão, em Objective-C, por que não poderia haver outros objetos raiz (caso contrário, o Objective-C só seria usado em sistemas Apple). No entanto, em Cocoa, NSObject é a raiz.


5 para resposta № 2

Em qualquer aplicativo Cocoa, se você examinar a árvore de classes de tempo de execução, encontrará cinco classes de raiz: NSObject, Object, NSProxy, NSMessageBuilder e NSZombie.

A maioria dos objetos comuns no seu aplicativo serádescendente de NSObject. Objeto é a classe raiz original dos primórdios do Objective-C, e foi substituída pelo NSObject quando o NeXT estava desenvolvendo o Enterprise Objects Framework.

NSMessageBuilder é usado pelo tempo de execução paraencaminhamento de mensagens. NSProxy é usado pela implementação de objetos distribuídos para lidar com mensagens de empacotamento para enviar para objetos em outros processos ou até mesmo em outros hosts. NSZombie é uma classe que é usada para depurar vazamentos de memória.


5 para resposta № 3

O cacau tem duas classes de raiz: NSObject e NSProxy.

NSObject é a classe raiz de quase todos os objetos Cocoa.

NSProxy é uma superclasse abstrata que define uma API para objetos que atuam como substitutos de outros objetos ou para objetos que ainda não existem e é a classe raiz de classes como NSDistantObject.

Ambas as classes implementam o protocolo NSObject.

Também é possível escrever seu próprio objetivo Cclasses que não têm uma classe raiz, mas você provavelmente nunca faria isso, e você não seria capaz de usá-lo com Cocoa para muita coisa a menos que você também implementasse o protocolo NSObject, e mesmo assim seria de uso duvidoso.