1.Objective-C调用C++代码 后缀为m文件的是Objective-C的执行文件,而后缀为mm文件的是Objective-C++文件. 直接在Objective-C中是无法调用C++代码的,所以如果需要在Objective-C调用C++语言就需要直接将后缀m文件改为mm,然后就可以调用C++代码了. Objective-C兼容C,Objective-C++兼容C.C++. 接下来是在OC工程中创建C++文件,并调用C++的代码: 然后在OC文件中直接用C++的语法调用C++,所以前提是…
原文转载自:@OBJC 和 DYNAMIC 虽然说 Swift 语言的初衷是希望能摆脱 Objective-C 的沉重的历史包袱和约束,但是不可否认的是经过了二十多年的洗礼,Cocoa 框架早就烙上了不可磨灭的 Objective-C 的印记.无数的第三方库是用 Objective-C 写成的,这些积累无论是谁都不能小觑.因此,在最初的版本中,Swift 不得不考虑与 Objective-C 的兼容. Apple 采取的做法是允许我们在同一个项目中同时使用 Swift 和 Objective-C…
  @objc and dynamic Objective-C runtime visibility and the depths of dynamic dispatch in the modern Swift era. 5 December 2017 ∙ Objective-C Interop ∙ written by Greg Heo The @objc attribute controls visibility of Swift bits from Objective-C. It’s ba…
Cocoa框架早已烙上了不可磨灭的OC印记,而无数的第三方库都是用OC写成的,这些积累无论是谁都不能小觑.苹果采取了允许开发者在同一个项目中同时使用Swift和OC进行开发的做法,但要想实现互通,又需添加哪些桥梁? 虽然说Swift语言的初衷是希望能摆脱Objective-C的沉重的历史包袱和约束,但是不可否认的是经过了二十多年的洗礼,Cocoa框架早就烙上了不可磨灭的Objective-C的印记.无数的第三方库是用Objective-C写成的,这些积累无论是谁都不能小觑.因此,在最初的版本中,…
Swift Code: func makeIncrementor(forIncrement amount: Int) -> (() -> Int,() -> Int) { func incrementor() -> Int { runningTotal += amount return runningTotal } func decrementor()->Int{ runningTotal -= amount return runningTotal } runningTota…
很多Github的库经过很多年的发展,源码都是OC写的,,所以,用Swift调用OC的库就是开发中难免遇到的的一个问题,本文以AFNetworking为例,讲解如何跨语言调用. 第一步 创建一个空的工程  注意,语言选择Swift 第二步,创建bridging-header 这个文件的作用,就是把OC的接口暴露给Swift.有两种方式  方式一  创建一个OC文件,然后点击确定    弹出是否要创建Bridging-Header,点击确定,这样会生成三个文件,其中的一个就是我们要用的SwiftU…
[解决方法]设置 Build Settings —-> Use Legacy Swift Language Version —-> 改为YES…
一.Unicode的一个小特性 首先,Unicode规定了许多code point,每一个code point表示一个字符.如\u0033表示字符"3",\u864e表示字符"你". 反过来,不是每一个字符都对应一个code point,每一个字符也不止有一个code point的表示方法. 比如说,"…
Objective-C 和 Swift 在底层使用的是两套完全不同的机制,Cocoa 中的 Objective-C 对象是基于运行时的,它从骨子里遵循了 KVC (Key-Value Coding,通过类似字典的方式存储对象信息) 以及动态派发 (Dynamic Dispatch,在运行调用时再决定实际调用的具体实现).而 Swift 为了追求性能,如果没有特殊需要的话,是不会在运行时再来决定这些的.也就是说,Swift 类型的成员或者方法在编译时就已经决定,而运行时便不再需要经过一次查找,而可…
One can explicitly write @objc on any Swift declaration that can be expressed in Objective-C. @objc相关的参量只能修饰类.类的成员.扩展以及只能被类实现的协议: 下面开列修饰的情况和说明 一.无修饰 NSObject-derived classes no longer infer @objc A declaration within an NSObject-derived class will no…