2010-10-15 16 views

Respuesta

11

Es posible, pero no es correcta:

warning: initialization makes pointer from integer without a cast 

Un id es un puntero a un objeto, no un número entero.

  • ¿Tiene la intención de utilizar el objeto disponible en la dirección 9? Es improbable que se te permita hacer eso.
  • ¿Simplemente desea utilizar un contenedor id para llevar un número entero? Debería usar NSNumber en su lugar.
  • ¿Espera que la asignación cree un objeto que contenga 9? Esto no funciona así
42

9 es un literal entero, que no es un objeto. id es un puntero a un objeto. Si usted necesita para pasar un entero como un objeto (tipo id) tiene que envuelve dentro de un objeto NSNumber así:

id var = [NSNumber numberWithInteger: 9]; 
2

id var = @9; también funciona. @9 es equivalente a [NSNumber numberWithInt:9]

Cuestiones relacionadas