从Objective-C到Swift的安全可选桥接模式或习惯用法
当我从Swift调用第三方Objective-C代码时,该代码没有用从Objective-C到Swift的安全可选桥接模式或习惯用法,objective-c,swift,null,optional,Objective C,Swift,Null,Optional,当我从Swift调用第三方Objective-C代码时,该代码没有用\u Nullable/\u Nonnull注释,它作为隐式展开可选项导入Swift。这意味着,如果我不特别小心,如果我的代码只是假设它不是nil,编译器甚至不会给出警告,我很容易导致崩溃 在这种情况下,有没有一种模式或习惯用法会有所帮助?我不确定这是否是最好的方法,但我会对所有API进行包装,包括删除IUO、转换成Swift通用货币类型等(String代替NSString,Array代替NSArray等),使用Swift错误抛
\u Nullable
/\u Nonnull
注释,它作为隐式展开可选项导入Swift。这意味着,如果我不特别小心,如果我的代码只是假设它不是nil
,编译器甚至不会给出警告,我很容易导致崩溃
在这种情况下,有没有一种模式或习惯用法会有所帮助?我不确定这是否是最好的方法,但我会对所有API进行包装,包括删除IUO、转换成Swift通用货币类型等(
String
代替NSString
,Array
代替NSArray
等),使用Swift错误抛出,而不是NSError**
参数等。嗯,是的,这是一个选项,但在我的情况下,这是一个过度杀伤力。我不确定这是否是最好的方法,但我会对所有API进行包装,例如删除IUO,转换为Swift通用货币类型(String
而不是NSString
,Array
而不是NSArray
,等等),使用快速错误抛出而不是NSError**
参数等。好吧,是的,这是一个选项,但在我的情况下,这是一种过度杀伤力。