Pregunta

Por ejemplo:

@interface Fraction: NSObject {
...

Cuando no NSObject ser utilizado y es <=> la clase matriz última de todas las demás clases?

No dude en corregirme en cualquier terminología mal utilizado.

¿Fue útil?

Solución

Si yo estaba escribiendo una subclase de NSView, escribiría:

@interface Fraction: NSView {...

porque mi clase hereda de NSView. Las clases de Objective-C heredan de una única clase padre. A medida que trabaja su camino hasta la cadena de NSView (a su clase padre, NSResponder), se verá que el tiempo se hereda de NSObject.

No estoy seguro acerca de la segunda parte de su pregunta. Creo que todas las clases en los marcos de cacao de Apple finalmente heredan de NSObject, pero no me cito en eso. No hay razón, en Objective-C, ¿por qué no puede haber otros objetos raíz (de lo contrario Objective-C sólo se puede utilizar en los sistemas de Apple). Sin embargo, en Cocoa, NSObject es la raíz.

Otros consejos

En cualquier aplicación Cocoa, si se examina el árbol de la clase en tiempo de ejecución, se encuentran cinco clases de raíz:. NSObject, objeto, NSProxy, NSMessageBuilder, y NSZombie

objetos más ordinarios en su aplicación serán descendientes de NSObject. Objeto es la clase raíz original a partir de los primeros días de Objective-C, y fue reemplazado por NSObject al siguiente fue el desarrollo de la empresa Objects Framework.

NSMessageBuilder es utilizado por el tiempo de ejecución para el reenvío de mensajes. NSProxy es utilizado por la aplicación de objetos distribuidos a lidiar con el cálculo de referencias para enviar mensajes a los objetos en otros procesos o incluso en otros huéspedes. NSZombie es una clase que se utiliza para la depuración de las pérdidas de memoria.

El cacao tiene dos clases de raíz:. NSObject y NSProxy

NSObject es la clase raíz de casi todos los objetos de cacao.

NSProxy es una superclase abstracta que define una API para objetos que actúan como sustitutos de otros objetos o de objetos que no existen todavía, y es la clase raíz de clases como NSDistantObject.

Los dos clases implementan el protocolo NSObject.

También es posible escribir sus propias clases de Objective C que no tienen una clase de raíz, pero es probable que nunca haría eso, y no sería capaz de utilizarlo con cacao de gran parte de nada a menos que también aplicó el protocolo NSObject, e incluso entonces sería de uso dudosa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top