iOS Swift的一些小知识(不断补充)

1. 在swift文件里是不能写c语言函数的,不兼容c,直接报错。想调用c语言函数,就要利用系统提供的桥接功能,就如同swfit中调用oc一样!

2.swift 2.0后提供了@convention(c) 用来把 swift的闭包函数转化成c语言指针。下面这种情况就会用到这个特性,

我们在c语言文件里,定义了一个函数:

CGFloat myCFunction(CGFloat (callback)(CGFloat x, CGFloat y)) {
    return callback(1.1, 2.2);
}

这里的callback函数是一个c语言函数指针,我们在swift里可以这样使用:

let swiftCallback : @convention(c) (CGFloat, CGFloat) -> CGFloat = {
    (x, y) -> CGFloat in
    return x + y
} 

let result = myCFunction( swiftCallback )

也有如下的简化的方法:

let result = myCFunction( {
    (x, y) -> CGFloat in
    return x + y
} )

 

3. 如何在老的oc项目中,引入swift代码内容

http://jrjian.github.io/2016/03/10/embed-swift-to-oc/ 

posted @ 2016-08-22 17:59  幻化成疯  阅读(285)  评论(0编辑  收藏  举报