首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么字符串'NSString * _Nullable‘会被转换成’ObjC!‘Swift中的属性

为什么字符串'NSString * _Nullable‘会被转换成’ObjC!‘Swift中的属性
EN

Stack Overflow用户
提问于 2016-02-10 16:16:21
回答 1查看 480关注 0票数 1

在我的Objective C代码中,我有一个属性:@property (nonatomic, readonly) NSString * _Nullable myNullableString;

我想在我的Swift代码中使用它,但在本例中,Xcode / Sourcekit认为myNullableString没有String?类型,而是String!类型。

由于这个事实,谨慎地解包属性是不正确的,而且强制使用也是不正确的,并且会导致Xcode / SourceKit崩溃,或者如果我想构建它的话还会导致段错误。

你知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-10 16:44:14

Nullnil不同。一个为Null的字符串是一个未初始化的字符串,但它仍然是一个字符串,而在swift中,你有一个在obj-c中不存在的叫做'optional‘的东西。

因此,String?意味着函数将返回一个完整的字符串或未定义(未初始化)的nil

所以实际上在

中最接近的是String!“,它是一个强制字符串(不能返回nil)。

编辑:正如Martin在评论中指出的-上面提到的陈述的第一部分是不正确的

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35309906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档