Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

356
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda