ios – Swift – 检查一个未包装的可选变量的nil

我有一个如下的模型类,它位于用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;
}

在我的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 name是String类型的可选项吗?而不是字符串!你可以有条不紊地打开它.

阅读更多关于Nullability in ObjC

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...