码迷,mamicode.com
首页 > 编程语言 > 详细

关于Objective-C和Swift混编

时间:2015-11-06 16:14:59      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

最近迷恋Stanford的iOS公开课,虽然英语不怎么样,后面的还没有翻译,我还是硬着头皮看了好几遍,终于是看完了,只想说一句词:AMAZING!!!

好了,说正事,现在做的项目都是以前做的Objective-C老项目,难道直到Objective-C被彻底的淘汰了我才能真正的去体验Swift吗?

NO,NO,NO!!! I DO NOT WANT TO DELAY, I WANT IT NOW! CONGRATULATIONS! YOU CAN DO IT:

其实iOS现在是可以混编的,接下来讲一下如何在以前的老项目中加入Swift, 我们先测试一下:

  1. 新建一个亲们都熟悉的Objective-C项目,Called:MixtureOfOCAndSwit;
  2. 新建类Person,但是这个Person类必须继承自NSObject或其子类,否则会出现错误`use of undeclared identifier ‘Person‘`:
    import Foundation
    
    class Person: NSObject {
        var name: String?
        
        var age: UInt?
    }
    但是在新建时,Xcode会要求亲们创建一个桥接文件,这个桥接文件会在Swift项目导入OC代码的时候会配置,这里不用理会
  3. 然后在新项目的ViewController里面import,怎么去import呢? Swift中又没有所谓的头文件! 其实是有的, Xcode回根据你的Swift代码自动生成一个头文件,那么头文件叫什么名字呢?
     由于我们这里是混编,所以这个自动生成的头文件的名字是动态变化的但是有一个规则:`xxx-swift.h`, 当中的xxx就是你当前的项目名称,这里,当然了就是`MixtureOfOCAndSwit-swift.h`,你在你的ViewController中可以这样引入:

    #import "MixtureOfOCAndSwit-swift.h"
  4. 这时候你可以把你的Swift代码引入了:
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        Person *person = [[Person alloc] init];
        
    }

    但是还是报错,为什么呢?这是因为我觉得我还在绕圈子,还么说完呢

  5. Target->Build Settings->Packaging->Define Module 设置成YES, THEN, BUILD IT, YOU HAVE GOT WHAT TO DO...

关于Objective-C和Swift混编

标签:

原文地址:http://www.cnblogs.com/Shreker/p/4942794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!