GABARITO: E
NSObject é praticamente a base da Fundação, que é o meio pelo qual podemos ter cordas, números, arrays e dicionários.
A Apple define isso como este: NSObject é a classe raiz da maioria das hierarquias de classes Objective-C. Através do NSObject, os objetos herdam uma interface básica para o sistema de tempo de execução e a capacidade de se comportar como objetos Objective-C.
Para ter um NSObject, você pode usar todos esses métodos nela: + alloc -init -copy -dalloc + new
NSObject
A classe de raiz da maioria das hierarquias de classes Objective-C, das quais as subclasses herdam uma interface básica para o sistema em tempo de execução e a capacidade de se comportar como objetos Objective-C.
https://developer.apple.com/documentation/objectivec/nsobject
NSEnumerator
Uma classe abstrata cujas subclasses enumeram coleções de objetos, como arrays e dicionários. Todos os métodos de criação são definidos nas classes - tal como NSArray, NSSet NSDictionary - que fornecer especiais NSEnumeratorobjetos com os quais a enumerar os seus conteúdos.
https://developer.apple.com/documentation/foundation/nsenumerator
NSNumber
Um encapsulamento de objeto para valores numéricos escalares primitivos. NSNumber é uma subclasse de NSValue que oferece um valor como qualquer tipo C escalar (numérico). Ele define um conjunto de métodos especificamente para configurar e acessar o valor como um sinal ou sem sinal char, short int, int, long int, long long int, float, ou double ou como um BOOL. (Observe que os objetos do número não preservam necessariamente o tipo com o qual eles são criados). Ele também define um compare(_:) método para determinar a ordernação de dois objetos NSNumber.
https://developer.apple.com/documentation/foundation/nsnumber