• 上篇讲了Swift中使用OCSwift中使用OC,这篇讲下OC中使用Swift类。 在OC中需要用到Swift代码的文件中引入#import “XXX-Swift.h”,XXX是你的工程名称。 特别注意 1、被使用的Swift的类必须是至少继承自NSObject...
    [Swift中引用OC看这篇](https://blog.csdn.net/yingbi2014/article/details/80093102)
    在OC中需要用到Swift代码的文件中引入#import "XXX-Swift.h",XXX是你的工程名称。
    
    > 特别注意
    >  1、被使用的Swift的类必须是至少继承自NSObject的,不然OC识别不了这个类。
    > 2、Swift中的属性和方法,要加上@objc标识,不然识别不了。
    
    代码如下,Swift中定义了一个类,这个类有一个类属性和一个类方法。
    ```
    class UUUU:NSObject {
        @objc static var yyy:String?
        @objc static func test()->(){
            print("XXXX")
        }
    }
    ```
    在OC需要用到的地方先引入#import "XXX-Swift.h",然后就能用了
    ```
    	UUUU *u  =[UUUU new];
        NSLog(@"%@" , UUUU.yyy);
        [UUUU test];
    ```
    
    Swift中使用类属性和类方法代替宏定义
    --------------------
    
    另外,在Swift的类中,可以使用只读的类属性和类方法来代替OC中的宏定义,这样定义的宏在OC中直接用,省略了在oc中再定义一次的麻烦。代码如下
    
    ```
    class UUUU:NSObject {
    	//只读的类属性
        @objc static var name:String{
            return "jim"
        }
    	//类方法
        @objc static func RGBColor(r:Float , g:Float , b:Float) -> UIColor {
            return UIColor.init(red: (CGFloat(r/255.0)), green: (CGFloat(r/255.0)), blue: (CGFloat(r/255.0)), alpha: 1.0)
        }
    }
    ```
    
    另一种Swift代替宏定义的方法是使用全局变量和全局函数来定义,[Swift中使用全局变量和函数代替宏](https://blog.csdn.net/yingbi2014/article/details/80091655)
    
    
    展开全文
  • swiftOC进行混合编码。
  • 在使用swiftoc混编的时候,swift中是不能导入头文件的; 1.在swift中,第一次创建oc文件时,系统会自动弹出,是否自动创建头文件,这个就不提示了,点击YES,就好 2.还有一种情况是,如果系统没有提示自动...
  • 我在一个oc的工程里面添加了另一个c++的工程,用来引用里面它里面的一些东西,这是前提现在头文件都引用好,文件都找到以后,c++工程下面的头文件一编译就报错unknown type name 'class'; did you mean 'Class',...
  • Swift中不需要互相引入头文件,但是一些全局的常量和宏我们可以写在一个公共的文件中,用来替代OC中pch文件的作用。 1、创建普通的comman.swift文件 2、在comman文件中定义全局参数和常用宏 对于一些常用参数...
  • 1 swift项目,找不到第三方文件,exp:AFN.h找不到,要修改build settings 里的User header custome search paths ,改成${SRCROOT},选择recursive.2 oc项目找不到swift文件,要引入工程名-swift.h文件。A.设置...
  • 最近使用swift的时候引用了OC文件,就给大家说一下我的个人经验,以供大家参考。 一、是直接将OC文件拉到Swift的工程中,然后Xcode会自动创建桥接头文件,这种就比较省事了,Xcode给你自动创建。 二、就是Xcode...
  • OCSwift之间的互调很简单,iOS8以后官方给出了这两种语言之间的桥接方案,简单说就是在Swift工程中,通过提示创建的Bridging头文件可以将OC文件和Swift文件衔接在一起,从而可以在OC文件中引用Swift类,或者在...
  • OCswift混编 2019-02-20 00:38:40
    相信很多iOS开发或多或少已经使用过swift,由于维护的项目时间比较久了,以往都是使用OC开发,现在正在对已有一些功能进行改版重写,索性使用swift来做,以下是在使用OCswift进行混编过程的一些介绍。一、工程配置...
  • swift和objc混编 2019-09-17 10:22:16
    1. swift中默认的属性为strong类型,如果需要定义weak类型的话就必须显示地指出weak。 2. swift中没有readonly和read-write类型。let定义的常量就是readonly类型,var定义的变量就是read-write类型的 3. 使用@...
  • OC Swift 混编 2017-08-30 13:29:01
    首先承认我落后了,到今天才开始在项目里用swift,而且还不是全部的用,只是ocswift混编,因为实在是进入项目的时候框架已经用oc搭好了啊啊啊啊啊。只能退而求其次,混编了,大致根据百度到的方法试了一下,不是很...
  • 总结一下自己对OC中和Swift中循环引用的认识。 一.OC中的循环引用分为类中的循环引用和对象之间的循环引用。 1.类的循环引用 造成原因: 在两个类的.h文件中使用了#import "" 而造成两个类之间的循环引用 解决办法:在...
  • Swift工程使用OC 2016-01-13 09:45:20
    1.创建一个Swift工程命名为OCSwift 2.随便创建一个OC文件 会出现提示,选择Create Bridging Header,系统会创建一个桥接文件 3.配置工程,确保Objective-C Compatibility Header为当前工程下的桥接文件 4.创建...
  • 有段oc代码如下: typedef void(^RootViewMoveBlock)(UIView *rootView,CGRect orginFrame,CGFloat xoffset); @property (copy,nonatomic) RootViewMoveBlock rootViewMoveBlock;//可在此block中重做动画效果 - ...
  • OCSwift如何相互调用 2017-05-23 12:15:55
    文件是自动创建的在swift中调用OC代码使用的桥接文件,需要将在swift中使用的OC的相关头文件添加该此处
  • WWDC推出了SwiftUI、Combine,仅Swift可用~为了能顺利的也吃上SwiftUI,我也打算将自己的项目先从OC慢慢迁移到Swift,所以~一起从混编开始! 创建Swift的view 正常创建文件,语言选swift 创建Bridging Header 上...
  • OCswift混编(桥接) 2018-10-10 14:49:59
    所谓桥接就是在OC 工程中第一次创建swift文件的时候回生成一个头文件(Bridging-Header.h 桥)。 这里主要是swift 调用OC方法的时候引入OC文件.h 所使用的   第一次在OC工程中创建swift文件生成的桥 头文件, ...
  • 2.在swift 中新建 OC 类 比如新建 Request 类,会自动生成个。XXXX-Bridging-Header 类; 3.让后把 导入的第三方头文件导入进去。例如: #import "AFNetworking.h" 但是他会提示找不到 4. 在 build Seting 搜索L...
  • iOS oc 调用 swift 2019-07-03 07:14:24
    如股票oc要调用swift里面的代码 需要包含固定这个头文件 项目名称 LiqunSwiftDemo-Swift.h #ProjectName#-Swift.h 固定的写法 swift 目的 是取代oc 但是 不会完全取代 只是前端的替换 LiqunSwiftDemo-Swift 点...
  • 一般我们在OCSwift混编的工程中,如果在.m文件中需要使用Swift的类的话,直接在相关的类前加上 @objcMembers 注解,然后在.m文件中导入 “Project Name-Swift.h” 头文件 就好了 但是如果在要在.h 中 必须使用...
1 2 3 4 5 ... 20
收藏数 2,777
精华内容 1,110