Sha*_*a G 7 objective-c ios swift3 xcode7.3
我有一个如下的模型类,它位于用Objective-C编写的库中.我正在快速的项目中使用这个类.在swift中它变成了类型的属性String!.有时该财产将是零.所以,我正在测试nil验证如下:
Vendor.h
@interface Vendor: NSObject {
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSString *middleName;
}
Run Code Online (Sandbox Code Playgroud)
在我的Swift项目中,我正在检查middleName属性的nil验证,如下所示:
if anObject.middleNam != nil { // Here, It throws runtime error: fatal error: Unexpectedly found nil while unwrapping an Optional value
}
Run Code Online (Sandbox Code Playgroud)
它抛出了以下运行时错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)
如果Objective-C属性暴露在swift中,String?那么我将使用以下内容:
if let middleName = anObject.middleName {
}
Run Code Online (Sandbox Code Playgroud)
我如何检查未包装的可选变量.
提前致谢.
如果您希望ObjectiveC属性在Swift中作为可选项公开,请使用_Nullable标记来 标记它
@property (nonatomic, strong) NSString * _Nullable middleName;
Run Code Online (Sandbox Code Playgroud)
现在,middleName name将是可选的类型String?而不是String!你可以有条件地打开它.
阅读更多关于ObjC中的Nullability的信息
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |