sencillo resueltos poo herencia ejercicios ejemplos ejemplo derivada clase objective-c syntax foreach language-features

objective c - resueltos - para el objeto en la colección donde el objeto hereda



ejercicios resueltos de herencia en java netbeans pdf (2)

No es como ninguno.

El tipo de foo en la parte for() es solo una pista para el compilador para que pueda dar los mensajes de error relevantes. En tiempo de ejecución, todos los objetos son solo objetos y siempre que implementen los métodos utilizados en el bloque, no habrá errores. Por ejemplo:

NSString* aString = @"20"; [anArray addObject: aString]; for (NSNumber* foo in anArray) { NSLog(@"%d", [foo intValue]); }

iterará sobre todos los objetos de la matriz y enviará intValue a cada uno, independientemente del tipo que estén incluyendo NSString al final. Si cada objeto implementa intValue funcionará bien (como NSString lo hace). Si hay un objeto en la matriz que no implementa intValue, lo más probable es que se genere una excepción.

En objetivo-c, es

for (Foo *foo in fooList) ...

más como cuál de los siguientes

@interface Bar : Foo ... for (Foo *f in fooList) { // A: if ([f isMemberOfClass:[Foo class]]) ... // dont include Bar''s // B: if ([f isKindOfClass:[Foo class]]) ... // both Foos and Bars }


Si entiendo correctamente, usted está preguntando si for (Foo *foo in fooList) sobre el subconjunto de elementos en fooList que son miembros de la clase Foo o el subconjunto de elementos que son clase de clase Foo .

La respuesta es: ninguna. La enumeración rápida (para ... en) iterará sobre todos los elementos en la colección . No filtrará los objetos de tipo Foo .