<!-- generator=" CodePongo (Base on Kukkaisvoima version 15b3TA)" -->
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<channel><title>CodePongo: xos</title><link>http://codepongo.com/blog</link><description></description><pubDate>Fri, 01 Apr 2016 17:30:06 +0200</pubDate><lastBuildDate>Fri, 01 Apr 2016 17:30:06 +0200</lastBuildDate><generator>http://codepongo.com/blog</generator><language>zh-cn</language><item><title>Swift 和 Objective-C 互相调用
</title><link>http://codepongo.com/blog/Z6bDt</link><comments>http://codepongo.com/blog/Z6bDt#comments</comments><pubDate>Fri, 01 Apr 2016 17:30:06 +0200</pubDate><dc:creator>zuohaitao</dc:creator><category>objc</category><category>swift</category><category>cocoa</category><category>xos</category><guid isPermaLink="false">http://codepongo.com/blog/Z6bDt/</guid><description><![CDATA[ 
 [...]]]></description><content:encoded><![CDATA[
Objective-C 调用 Swift

Swift 类

Swift类定义前加入@objc关键字，并使类继承自NSObject


@objc class S : NSObject{
    func m() {
        print(__FUNCTION__)
    }
}


在调用Swift代码的Objc文件中加入名类似为"xxx-Swift.h"的头文件

头文件具体的名字可在 设置选项：


  {project} - {targets} - {build settings} - {swift compiler - code generation} - {Objective-C Generated Interface Header Name}






 #import "objc_swift-Swift.h"
int main(int argc, const char * argv[]) {
   @autoreleasepool {
        S* s = [[S alloc]init];
        [s m];
    }
    return 0;
 }


Swift 调用 Objective-C

创建桥接文件



选择Create Bridging Header

桥接文件在如下设置位置


  {project} - {targets} - {build settings} - {swift compiler - code generation} - {Objective-C Bridging Header}


将要调用的ObjC类头文件import至桥接文件中


//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

 #import "O.h"


ObjC 代码

.h 文件


@interface O : NSObject
-(void)m;
@end


.m 文件


@implementation O
-(void)m {
    NSLog(@"%s", __FUNCTION__);
}
@end


swift 文件


@objc class S : NSObject{
    let o:O = O()
    func m() {
        o.m()
        print(__FUNCTION__)
    }
}


示例工程

objc-swift

]]></content:encoded><wfw:commentRss>http://codepongo.com/blog/Z6bDt/feed/</wfw:commentRss></item><item><title>﻿Special Keys on Mac Keyboard
</title><link>http://codepongo.com/blog/t9dxd</link><comments>http://codepongo.com/blog/t9dxd#comments</comments><pubDate>Fri, 08 Jan 2016 17:30:06 +0200</pubDate><dc:creator>zuohaitao</dc:creator><category>xos</category><guid isPermaLink="false">http://codepongo.com/blog/t9dxd/</guid><description><![CDATA[ 
 [...]]]></description><content:encoded><![CDATA[
Mac键盘上特殊功能键的说明



]]></content:encoded><wfw:commentRss>http://codepongo.com/blog/t9dxd/feed/</wfw:commentRss></item></channel></rss>