• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

关于Objective-C和Swift混编

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近迷恋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...

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift-页控件(UIPageControl)的用法发布时间:2022-07-18
下一篇:
swift实现漂亮的粒子效果CAEmitterLayer发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap