关于Objective-C和Swift混编 objective-c swift

   2023-02-07 学习力0
核心提示:最近迷恋Stanford的iOS公开课,虽然英语不怎么样,后面的还没有翻译,我还是硬着头皮看了好几遍,终于是看完了,只想说一句词:AMAZING!!!好了,说正事,现在做的项目都是以前做的Objective-C老项目,难道直到Objective-C被彻底的淘汰了我才能真正的去体验Swift吗?NO,N

最近迷恋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举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 《黑马程序员》 category分类的使用(Objective
    分类的作用:在不改变原来类的基础上,可以给类增加一些方法。使用注意 : ①  分类只能增加方法,不可以增加成员变量                ②  分类的方法在实现中可以访问成员变量,不过成员变量必须手动实现。               
    03-16
  • Objective-C学习—UIScrollView控件使用
    Objective-C学习—UIScrollView控件使用
    一、知识点简单介绍1.UIScrollView控件是什么?(1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限(2)当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容(3)普通的UIView不具备滚动功能
    03-16
  • Objective-C Runtime(转)
    博主地址: http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/曾经觉得Objc特别方便上手,面对着 Cocoa 中大量 API,只知道简单的查文档和调用。还记得初学 Objective-C 时把[receiver message]当成简单的方法调用,而无视了“发送消息”这句话
    03-08
  • iOS扩展——Objective-C开发编程规范 简单io扩展实验代码
    iOS扩展——Objective-C开发编程规范 简单io扩
      最近准备开始系统学习一个完整项目的开发流程和思路,在此之前,我们需要对iOS的开发变成规范进行更系统和详尽的学习,随意对编程规范进行了整理和学习。本文内容主要转载自:Objective-C-Coding-Guidelines-In-Chinese  此外,这篇文章所说的一些常见
    03-08
  • Objective-C利用协议实现回调函数
    实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下:  实现的代码如下:定义协议:#import UIKit/UIKit.h @protocol NoteDelegate //回调函数 -(void)messageCallBack:(NSString *)string; @end 调用协议:#impor
    02-10
  • 刨根问底Objective-C Runtime(1)- Self & S
      刨根问底Objective-C Runtime(1)- SelfSuper - Chun Tips专注iOS开发 刨根问底Objective-C Runtime(1)- SelfSuper前言关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime译文地址为: http://blog.cocoabit.com/blog/2
    02-10
  • Objective-C利用协议实现回调函数
    实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下: 实现的代码如下:定义协议:#import UIKit/UIKit.h @protocol NoteDelegate//回调函数-(void)messageCallBack:(NSString *)string;@end  调用协议:#import Founda
    02-10
  • Objective-c开发中混合使用ARC
    首选“Compile Sources”的位置:选中工程-TARGETS-相应的target然后选中右侧的“Build Phases”,向下就找到“Compile Sources”了。如何在未使用arc的工程中引入一个使用了arc特性的文件:对相应的文件添加:-fobjc-arc参数如何在arc工程中引用未使用arc的文件
    02-10
  • Objective C运行时(runtime)技术总结,好强大
    前言:         Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/cla
    02-09
  • Programming With Objective-C---- Introductio
    a:link { color: rgba(88, 114, 210, 1); text-decoration: none }a:visited { color: rgba(88, 114, 210, 1); text-decoration: none }a:hover { color: rgba(173, 189, 248, 1); text-decoration: none }a:active { color: rgba(0, 0, 255, 1); text-decora
    02-09
点击排行