gpt4 book ai didi

ios - Swift - 检查一个未包装的可选变量的零

转载 作者:可可西里 更新时间:2023-11-01 03:29:54 25 4
gpt4 key购买 nike

我有一个模型类如下,它在用 Objective-C 编写的库中。我在我的 swift 项目中使用了这个类。在 swift 中,它成为 String! 类型的属性。有时该属性将为零。所以,我正在测试 nil 验证,如下所示:

供应商.h

@interface Vendor: NSObject {

@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSString *middleName;
}

在我的 Swift 项目中,我正在检查 middleName 属性的 nil 验证,如下所示:

if anObject.middleNam != nil { // Here, It throws runtime error: fatal error: Unexpectedly found nil while unwrapping an Optional value
}

它抛出以下运行时错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

如果 objective-C 属性在 swift 中公开为 String? 那么我会使用以下内容:

if let middleName = anObject.middleName {

}

我将如何检查展开的可选变量。

提前致谢。

最佳答案

如果您希望 ObjectiveC 属性在 Swift 中作为可选属性公开,请使用 _Nullable 标记将其标记为

@property (nonatomic, strong) NSString * _Nullable middleName;

现在 middleName 名称将是 String? 类型的可选类型,而不是 String! 并且您可以有条件地解包它。

阅读更多关于 Nullability in ObjC 的信息

关于ios - Swift - 检查一个未包装的可选变量的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38070514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com