1

在我的目标 C 代码中,我具有以下属性: @property (nonatomic, readonly) NSString * _Nullable myNullableString;

我想在我的 Swift 代码中使用它,但在这种情况下,Xcode / Sourcekit 认为它myNullableString没有 typeString?但有 type String!

由于这个事实,保护的展开属性是不正确的,但强制使用也是不正确的,如果我想构建它,将导致 Xcode / SourceKit 崩溃或段错误。

知道如何解决吗?

4

1 回答 1

-1

Null不一样nil。一个字符串Null是一个未初始化的字符串,但是一个字符串在 swift 中你有一些在 obj-c 中不存在的叫做“可选”的东西。

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

所以实际上 swift 中最接近的东西是String!" 这是一个强制性字符串(不能返回 nil)。

编辑:正如马丁在评论中指出的那样——上述陈述的第一部分是不正确的

于 2016-02-10T08:44:14.343 回答