Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

354
Vistas
¿Por qué Swift Int zero se lee nil en el código objc?

Estoy trabajando en un proyecto mixto objc y swift, y noté que cuando tengo una propiedad Int en una clase Swift que tiene un valor 0 cuando leo este valor del código Objc, devuelve nil .

Una clase Swift con una propiedad de número entero que es visible desde ObjC:

 @objc class SwiftInt: NSObject { @objc let testInt: Int = 0 }

Ahora, cuando leo esta propiedad en un código Objc, dice que testInt es nil :

 - (void)viewDidLoad { [super viewDidLoad]; SwiftInt *swiftInt = [SwiftInt new]; if (swiftInt.testInt == nil) { NSLog(@"This shouldn't be nil"); } }

Si configuro cualquier otro número que no sea 0, ese valor se devuelve correctamente, pero para 0 devuelve cero. La pregunta es ¿por qué esto es nil en Objc cuando Int es un tipo primitivo y no es opcional? Estoy usando Swift 4.2.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Porque en Objective-C nil se define como __DARWIN_NULL :

 #ifndef nil # if __has_feature(cxx_nullptr) # define nil nullptr # else # define nil __DARWIN_NULL # endif #endif

Que se define como (void *)0 en Obj-C

Entonces tu código:

 if (swiftInt.testInt == nil) { ... } if (0 == nil) { ... } if (0 == 0) { ... }

que siempre es verdad

Buen artículo sobre nil en Obj-C http://benford.me/blog/the-macro-behind-nil/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda