Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

原创文章,欢迎转载。转载请注明:关东升的博客       Swift与Objective-C API映射 在混合编程过程中Swift与Objective-C调用是双向的,由于不同语言对于相同API的表述是不同的,他们之间是有某种映射规律的,这种API映射规律主要体现在构造函数和方法两个方面。   1、构造函数映射 在Swift与Objective-C语言进行混合编程时,首先涉及到调用构造函数实例化
原创文章,欢迎转载。转载请注明:关东升的博客

@H_801_31@

SwiftObjective-C API映射@H_801_31@

在混合编程过程中SwiftObjective-C调用是双向的,由于不同语言对于相同API的表述是不同的,他们之间是有某种映射规律的,这种API映射规律主要体现在构造函数方法两个方面。@H_801_31@

@H_801_31@

1、构造函数映射@H_801_31@

SwiftObjective-C语言进行混合编程时,首先涉及到调用构造函数实例化对象问题,不同语言下构造函数表述形式不同,如图是苹果公司官方API文档,描述了NSString类的一个构造函数@H_801_31@

@H_801_31@

@H_801_31@

Swift构造函数除了第一个参数外,其它参数的外部名就是选择器对应部分名。规律的其它细节图中已经解释的很清楚了,这个规律反之亦然,这里不再赘述@H_801_31@

@H_801_31@

@H_801_31@

2方法名映射@H_801_31@

SwiftObjective-C语言进行混合编程时,不同语言下方法名表述形式也是不同的,如图是苹果公司官方API文档,描述了NSString类的rangeOfString:options:range:方法 @H_801_31@

@H_801_31@


@H_801_31@

@H_450_250@选择器第一个部分rangeOfString@H_450_250@作为方法名,一般情况下Swift@H_450_250@方法一个参数的外部参数名是要省略的,“_@H_450_250@”符号表示省略。之后的选择器各部分名(如:options@H_450_250@和range@H_450_250@),作为外部参数名。除了参数名对应为,参数类型也要对应下来。@H_801_31@

@H_450_250@@H_801_31@


@H_801_31@

Swift 2.0@H_450_250@之后方法可以声明抛出错误,这些能抛出错误方法,不同语言下方法名表述形式如图下图所示,是writeToFile:atomically:encoding:error:@H_450_250@苹果公司官方API@H_450_250@文档。@H_801_31@

@H_450_250@@H_801_31@


@H_801_31@

@H_450_250@比较两种不同语言,我们会发现error@H_450_250@参数在Swift@H_450_250@语言中不再使用,而是在方法添加throws@H_450_250@关键字。@H_801_31@

@H_450_250@这种映射规律不仅仅只适用于苹果公司官方提供的Objective-C@H_450_250@类,也适用于自己编写的Objective-C@H_450_250@类。@H_801_31@

@H_801_31@

欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息

更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php@H_801_31@

大佬总结

以上是大佬教程为你收集整理的《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射全部内容,希望文章能够帮你解决《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。