`

《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射

阅读更多

原创文章,欢迎转载。转载请注明:关东升的博客 

 

SwiftObjective-C API映射

 

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

 

1、构造函数映射

 

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

 

 

 

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

 

 

  

2、方法名映射

 

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

 

 

 

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

  

 

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

 

 

 

 

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

 

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

 

 

 

  

 

 

 

 

  • 大小: 262.4 KB
  • 大小: 190.7 KB
  • 大小: 229.2 KB
  • 大小: 186 KB
  • 大小: 207.9 KB
  • 大小: 20.5 KB
分享到:
评论

相关推荐

    Swift和Objective-C混合编程示例代码

    在iOS应用开发中,Swift和Objective-C的混合编程是一个常见的需求。Swift是Apple于2014年推出的现代化编程语言,而Objective-C则是苹果长期使用的系统级编程语言,两者各有优势。本示例代码旨在帮助开发者理解如何在...

    Swift与Objective-C混合编程:深入解析与实践指南

    本文将详细介绍Swift与Objective-C混合编程的方法、步骤和最佳实践。 Swift与Objective-C的混合编程为开发者提供了在现有项目中逐步采用新技术的灵活性。通过遵循上述步骤和最佳实践,开发者可以在保持项目稳定性的...

    禅与Objective-C编程艺术

    《禅与Objective-C编程艺术》是一本专注于iOS开发领域中Objective-C编程语言的书籍。Objective-C是苹果公司开发的一款编程语言,主要用于开发macOS、iOS和watchOS应用。本书以其独特的视角,将编程艺术与禅的哲学...

    Using-Swift-with-Cocoa-and-Objective-C(4.1)

    在Swift与Objective-C的世界里,混编技术使得开发者可以充分利用这两种语言的优点,为iOS和macOS应用程序开发带来更大的灵活性。"Using Swift with Cocoa and Objective-C(4.1)"是Apple官方发布的文档,旨在帮助...

    objective-c编程 第2版=objective-c program 2nd edition_13889311

    Objective-C编程第二版,可能是为了适应技术的更新和开发者的需求而进行的一次修订,旨在帮助程序员深入理解和熟练掌握Objective-C语言。 Objective-C是C语言的超集,它在C的基础上添加了面向对象的概念,如类、...

    Objective-C 编程语言.pdf

    从给定的文件信息来看,这是一份关于Objective-C编程语言的英文原版高质量教程,主要涉及了Objective-C的基础概念、语法结构以及如何使用该语言进行编程。Objective-C是一种通用、面向对象的编程语言,由Stepstone...

    swift-iOSToast提示框(Objective-C)

    在Xcode中,确保你的项目已经启用“Swift与Objective-C混合编程”(在项目的Build Settings中,搜索"Objective-C Bridging Header"并配置一个桥接头文件)。 接着,我们将通过CocoaPods来安装`YTToast`。在你的`...

    [Objective-C编程(第6版)]Programming in Objective-C

    ### Objective-C编程(第6版) —— Programming in Objective-C #### 书籍概述 《Objective-C编程(第6版)》是由Stephen G. Kochan编写的权威指南,旨在为程序员提供学习Objective-C语言所需的全部基础知识。该书由...

    Using Swift with Cocoa and Objective-C中文

    综上所述,Swift与Cocoa和Objective-C之间的互用性是Swift作为苹果生态体系中的核心语言之一的关键因素之一。无论你是从Objective-C迁移过来的开发者,还是正在构建新的应用,了解这些互用性的特点和技巧都将极大...

    Swift的使用,Using Swift with Cocoa and Objective-C(Swift4.0.3)

    《Swift的使用,Using Swift with Cocoa and Objective-C (Swift 4.0.3)》是Apple官方发布的一份详尽指南,旨在帮助开发者理解和掌握如何在Cocoa和Objective-C环境中有效地使用Swift编程语言。这份文档对于熟悉...

    禅与Objective-C的编程艺术

    - **Swift与Objective-C对比**:虽然Swift作为苹果新推出的编程语言,在许多方面都优于Objective-C,但Objective-C依然有着不可替代的地位。 - **nil与BOOL检查**:介绍如何在Objective-C中处理空值(nil)以及布尔...

    Using Swift with Cocoa and Objective-C (Swift 4) EN.epub

    Using Swift with Cocoa and Objective-C (Swift 4) EN.epub 去除 DRM

    Objective-C的语法与Cocoa框架.pdf

    Objective-C语言是一种面向对象的编程语言,它是C语言的一个超集,专门为MacOSX和iOS平台的开发设计。作为苹果官方支持的语言,Objective-C拥有悠久的历史和深厚的技术底蕴。它从C语言发展而来,对C语言的结构和语法...

    swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合

    `swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合`这一标题揭示了一个高效的解决方案,它结合了Objective-C和Swift语言的优势,使得从JSON数据到自定义模型对象的转换变得简单...

    objective-c 编程

    Objective-C编程是苹果生态系统中的主要开发语言,用于构建iOS、macOS以及其他Apple平台的应用程序。Objective-C是由C语言发展而来,融入了Smalltalk的面向对象特性,因此它结合了C的简洁性和面向对象的灵活性。 1....

    objective-c基础教程

    Objective-C是iOS开发中最主要的编程语言之一,在苹果推出Swift之前,几乎所有iOS应用程序都是用Objective-C编写的。虽然现在Swift已经成为苹果官方推荐的首选语言,但许多现有应用仍基于Objective-C编写,且该语言...

    学习Objective-C: 入门教程

    ### 学习Objective-C:入门教程 ...虽然近年来Swift语言的出现和发展吸引了许多新的开发者,但Objective-C仍然是一门值得学习的重要语言,特别是在处理旧项目或需要与大量现有Objective-C代码集成的情况下。

    Using Swift With Cocoa and Objective-C中文版

    Using Swift With Cocoa and Objective-C中文版,OC和Swift混合使用

Global site tag (gtag.js) - Google Analytics