我有一个如下的模型类,它位于用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。