Score %0 (0 correct0 incorrect20 unanswered)

Q1. ¿Cuál es el valor de s?

NSMutableString *s = [NSMutableString stringWithString: @"123"];
[s appendString: @"456"];
  • 123456
  • 123
  • 123
  • 456
  • Este código contiene un error.

Q2. ¿Cuál es el valor de i después de estas declaraciones?

NSString *str = nil;
NSInteger i = str.integerValue;
  • nil
  • 0 (técnicamente nil == 0 pero i tendrá un valor literal de 0 y no el valor void* de nil)
  • -1
  • Este código falla.

Q3. ¿Qué valor tiene str después de que se ejecute esta línea?

NSString str = "test" + " " + "more";

  • Este código contiene un error.
  • test
  • nil
  • test more

Q4. ¿Cuál es la salida del código que se muestra a continuación?

    NSPredicate *p2 = [NSPredicate predicateWithBlock:^BOOL(NSString*  evaluatedObject, NSDictionary<NSString *,id> * _Nullable bindings) {
      return evaluatedObject.intValue % 2 == 0;
    }];
    NSArray *vals = @[@"1", @"2", @"3"];
    NSArray *n2 = [vals filteredArrayUsingPredicate:p2];
    NSLog(@"%@", n2.firstObject);
  • 2
  • 1,2,3
  • 1,2
  • Nada, ya que este código contiene un error.

Q5. ¿Cuáles son los valores predeterminados de las propiedades?

  • atomic/strong
  • atomic/weak
  • nonatomic/weak
  • nonatomic/strong

Q6. ¿Cuál es la diferencia clave entre NSDictionary y NSMutableDictionary?

  • Los valores de NSMutableDictionary pueden cambiar
  • NSMutableDictionary no tiene inicializadores.
  • NSDictionary no puede ser copiado.
  • Los valores de NSDictionary pueden cambiar.

Q7. ¿Qué es foo?

-(float)foo;

  • Una función con un tipo de retorno float.
  • Este código contiene un error.
  • Una declaración de variable de tipo float.
  • Una propiedad de tipo float.

Q8. ¿Qué se puede deducir de esta línea?

#import "NSString+NameHelper.h"

  • NameHelper es una categoría de NSString.
  • NameHelper es una subclase de NSString.
  • NSString implementa el protocolo NameHelper.
  • NSString tiene una clase de ayuda.

Q9. ¿Qué hay de malo en este código?

float x = 5.;

  • No hay nada malo con este código.
  • Las declaraciones no necesitan punto y coma.
  • x=5 es un float inválido.
  • Las variables no pueden declararse e inicializarse en el mismo estado.

Q10. ¿Cuántas veces se ejecutará este bucle?

for (int x=0; x<100; x++) {
  x = x + 1;
}
  • 50
  • 99
  • 100
  • Este código contiene un error.

Q11. ¿De qué es un ejemplo este código?

[self addObserver: self forKeyPath: @"val" options:0 context: nil];

  • Observación de clave-valor
  • Observación de valores de clase
  • Observación de datos clave
  • Observación de rutas clave

Q12. ¿Qué significa ARC?

  • Recuento automático de referencias
  • Comprobación automática de retención
  • Ciclos de retención asíncronos
  • Código de liberación automática

Q13. ¿Qué se imprime con este código?

int val = 0;
val = 1.5;
printf("%d", val);
  • 1
  • 2
  • 0
  • Este código contiene un error.

Q14. ¿Qué describe mejor la herencia de clases en Objective-C?

  • herencia única pero implementación múltiple de protocolos
  • Objective-C no admite herencia
  • herencia de clases dual
  • herencia de clases y adherencia a protocolos ilimitada

Q15. ¿Cuántas claves tiene este NSDictionary después de que se ejecute este código?

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys: @"b", @"e", @"a", @"r", nil];

  • 2
  • 4
  • 5
  • Este código contiene un error.

Q16. ¿Cuál es el error en este código?

NSMutableDictionary *dict1 = [NSMutableDictionary dictionaryWithCapacity:5];
[dict1 setValue:@"key" forKey:@"value"];
  • Los elementos clave y valor están mezclados
  • No hay nada mal en ello
  • No se puede establecer la capacidad de un diccionario
  • NSMutableDictionary no tiene una función :setValue:forKey.

Q17. ¿Qué se imprime con este código?

NSData *data = [@"print" dataUsingEncoding:NSASCIIStringEncoding];
NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]);
  • print
  • Este código es inválido
  • Nada se imprime de este código.
  • nil

Q18. ¿Qué es diferente acerca de esta función?

+(void)doSomething;

  • Es estática
  • Es abstracta.
  • Es en línea.
  • Este código contiene un error.

Q19. ¿Qué pueden tener los structs?

  • funciones
  • inicializadores
  • campos
  • todas estas respuestas

Q20. ¿Qué está mal con este código?

@interface MyClass : NSObject
    @property (strong, nonatomic, readonly) NSString *name;
  @end
  • No hay nada mal con este código.
  • No hay una directiva de solo lectura.
  • MyClass no implementa NSObject.
  • Las propiedades se declaran en la implementación.