Я работаю над смешанным проектом objc и swift, и я заметил, что когда у меня есть свойство Int
в классе Swift, которое имеет значение 0, когда я читаю это значение из кода Objc, оно возвращает nil
.
Класс Swift с целочисленным свойством, видимым из ObjC:
@objc
class SwiftInt: NSObject {
@objc let testInt: Int = 0
}
Теперь, когда я читаю это свойство в коде Objc, оно говорит, что testInt
равно nil
:
- (void)viewDidLoad {
[super viewDidLoad];
SwiftInt *swiftInt = [SwiftInt new];
if (swiftInt.testInt == nil) {
NSLog(@"This shouldn't be nil");
}
}
Если я установлю любое другое число, кроме 0, это значение будет возвращено правильно, но для 0 оно возвращает ноль. Вопрос в том, почему это nil
в Objc, когда Int
является примитивным типом и не является необязательным? Я использую Swift 4.2.