Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Objective-C到Swift的安全可选桥接模式或习惯用法_Objective C_Swift_Null_Optional - Fatal编程技术网

从Objective-C到Swift的安全可选桥接模式或习惯用法

从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错误抛

当我从Swift调用第三方Objective-C代码时,该代码没有用
\u Nullable
/
\u Nonnull
注释,它作为隐式展开可选项导入Swift。这意味着,如果我不特别小心,如果我的代码只是假设它不是
nil
,编译器甚至不会给出警告,我很容易导致崩溃


在这种情况下,有没有一种模式或习惯用法会有所帮助?

我不确定这是否是最好的方法,但我会对所有API进行包装,包括删除IUO、转换成Swift通用货币类型等(
String
代替
NSString
Array
代替
NSArray
等),使用Swift错误抛出,而不是
NSError**
参数等。嗯,是的,这是一个选项,但在我的情况下,这是一个过度杀伤力。我不确定这是否是最好的方法,但我会对所有API进行包装,例如删除IUO,转换为Swift通用货币类型(
String
而不是
NSString
Array
而不是
NSArray
,等等),使用快速错误抛出而不是
NSError**
参数等。好吧,是的,这是一个选项,但在我的情况下,这是一种过度杀伤力。