在我的Objective C代码中,我有一个属性:@property (nonatomic, readonly) NSString * _Nullable myNullableString;
我想在我的Swift代码中使用它,但在本例中,Xcode / Sourcekit认为myNullableString没有String?类型,而是String!类型。
由于这个事实,谨慎地解包属性是不正确的,而且强制使用也是不正确的,并且会导致Xcode / SourceKit崩溃,或者如果我想构建它的话还会导致段错误。
你知道怎么解决这个问题吗?
发布于 2016-02-10 16:44:14
Null与nil不同。一个为Null的字符串是一个未初始化的字符串,但它仍然是一个字符串,而在swift中,你有一个在obj-c中不存在的叫做'optional‘的东西。
因此,String?意味着函数将返回一个完整的字符串或未定义(未初始化)的nil。
所以实际上在
中最接近的是
String!“,它是一个强制字符串(不能返回nil)。
编辑:正如Martin在评论中指出的-上面提到的陈述的第一部分是不正确的
https://stackoverflow.com/questions/35309906
复制相似问题