oc引用swift_swift引用oc - CSDN
精华内容
参与话题
  • swift项目中,OCswift文件相互调用

    千次阅读 2017-08-10 13:40:38
    有时候 ,我们会涉及到双向混合编程,特别是OCswift的互相引用。   swift调用oc的方法: 1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可) 2、将需要引用...

    有时候 ,我们会涉及到双向混合编程,特别是OC和swift的互相引用。

     

    swift调用oc的方法:

    1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可)

    2、将需要引用的oc文件 .h头文件 添加到桥接类中。

     

    如下:

    然后在swift调用处,直接就可以使用了。

     

    oc调用swift的方法:

    1、首先设置一下Packing

    进入TARGETS ->Build Settings -> Packaging 中

    设置Defines Module为YES

    设置 Product Module Name (这个也可以不设置,直接使用默认就行)

    如图:

     

     2、设置完之后,在需要引用的oc文件头部  import一下,格式为: #import "工程名-Swift.h"

          比如:#import "OrderSystem-Swift.h"

     

    然后就可以使用swift文件了

     

    对了,本文是基于swift创建的工程,两种情况分别对应正常的 swift引用oc文件,以及在oc文件内回头引用swift文件。

    如果是基于oc创建的工程,暂未测试。

    展开全文
  • OC 调用 Swift 方法

    千次阅读 2018-09-06 11:47:34
    1.新建Swift文件之前做以下设置 2.创建Swift文件后,会提示创建桥接文件,点击创建 3.Swift 类 import Foundation class RealmManager: NSObject { override init() { super.init() } @objc func ...

    1.新建Swift文件之前做以下设置
    这里写图片描述

    2.创建Swift文件后,会提示创建桥接文件,点击创建

    3.Swift 类

    import Foundation
    
    class RealmManager: NSObject {
        override init() {
            super.init()
        }
        @objc func getConins() -> String {
            return "\(Setting.coins),\(Setting.currentLevel)"
        }
    }

    Swift的类必须继承NSObject 否则无法识别
    Swift的方法必须用@objc 修饰,否则,无法识别

    4.在OC中导入Swift引用
    、#import “plus-Swift.h”

    plus 就是上边截图的Product Name

    展开全文
  • OC中使用Swift混编引入头文件

    千次阅读 2018-05-22 13:22:09
    上篇讲了Swift中使用OCSwift中使用OC,这篇讲下OC中使用Swift类。 在OC中需要用到Swift代码的文件中引入#import “XXX-Swift.h”,XXX是你的工程名称。 特别注意 1、被使用的Swift的类必须是至少继承自NSObject...

    Swift中引用OC看这篇
    在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中使用全局变量和函数代替宏

    展开全文
  • OC工程调用Swift方法

    万次阅读 2017-01-11 11:45:08
    1.建一个OC工程命名为SwiftOC 2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h” 3.配置工程 设置Defines Module 为Yes ...

    为防止出问题,建议以这样的方法做:
    1.建一个OC工程命名为SwiftOC
    这里写图片描述
    2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”
    这里写图片描述

    这里写图片描述
    3.配置工程
    设置Defines Module 为Yes
    这里写图片描述
    设置Product Module Name 为当前工程名
    这里写图片描述

    此时系统会为工程创建一个“上面所填Product Module Name-Swift.h”的文件,此文件不可手动创建,必须使用系统创建的

    4.创建一个Test2.swift
    这里写图片描述

    import Foundation
    public class HH:NSObject
    {
    
        public func show()
        {
         print("hello")
        }
    }

    5.在OC文件中引用swift

    
    #import "ViewController.h"
    //导入时需要手动打上,系统没有提示
    #import "SwiftOC-Swift.h"
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        HH *VC=[[HH alloc]init];
        [VC show];
    }
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    展开全文
  • swift调用oc: 需要在统一的bridge头文件(xxx-Bridging-Header.h)里面import,然后即可使用。 oc调用swift: 需要在暴露出来的方法和属性上加@objc否则不可用。需要在工程配置里面做一些小改动。 具体设置和内容...
  • OC 引用并调用Swift文件

    千次阅读 2019-07-24 17:09:03
    1、我们先创建一个OC的项目MyFirstOCUseSwiftDemo 2、我们点击Target看到右边选择Build Settings,把Defines Module改为YES, 3、我们回到工程目录下,New File一个Swift File,起名为MyFristSwift,此时会...
  • OC代码中使用Swift文件的实践

    千次阅读 2018-05-31 11:32:11
    最近在研究swift,就我看来,swift确实是比OC更优秀的语言,这可以体现在很多方面,网上已经对比的很透彻,就不一一赘述。 今天研究了一下如何在OC项目中使用swift文件,即OCswift的混编问题,发现在OC中要使用...
  • SwiftOC 互相调用

    千次阅读 2018-07-20 16:19:07
    Swift 调用 OC Swift 调用 OC 分为两种常见情况,一种是直接在 Application 的 project 中使用;另一种情况是,在 framework 开发中使用。 对于互相调用的原理,如下图所示,更详细的内容可以参考 《Using Swif ...
  • iOS OC项目调用Swift

    万次阅读 2017-03-17 13:51:27
    网上有很多关于OC项目中使用Swift类的方法,但是亲自试了之后,发现不够详细,多次尝试后,终于找出详细的方法。 现把方法和遇到的问题,记录下来,方便其他同仁借鉴.
  • Swift 中调用OC枚举

    千次阅读 2019-09-17 14:35:00
    OC中 typedef NS_ENUM (NSUInteger, EVDeviceType) { EVDeviceAudioCapture = 0, EVDeviceAudioPlayback = 1, EVDeviceVideoCapture = 2 }; Swift EVDeviceType.audioCapture
  • iOS程序猿之OC项目引入Swift方法

    千次阅读 2016-02-14 14:45:53
    OC项目引入Swift方法 在OC项目中,有可能会遇到需要引入Swift写的第三方库,下面整理下OC项目如何使用Swift库 1.在已有的OC工程中新建一个Swift文件,命名为Test.swift,会弹出提示,选择Create Bridging Header建立...
  • OCSwift混编

    千次阅读 2016-01-26 10:16:30
    Swift发展势头越来越好,而很多公司很难一下子从OC全部切换到swift,这个时候混编就显得那么的重要,本人也在逐渐的尝试混编然后逐步取代OC,从而全部转到swift上。 其实,从2014年swift刚出来的时候就开始研究swift...
  • OC的全局引用Swift的宏定义

    千次阅读 2016-06-29 11:14:02
    一、OC添加pch全局引用文件 在Xcode6之前新建项目之后会自动创建这个文件。但是Xcode6以后的版本需要手动创建,创建过程如下。 1、 创建pch文件,新建一个文件,选择PCH File 2、设置pch文件的路径 为了...
  • OC使用cocoapods导入swift库注意

    千次阅读 2017-08-23 15:38:22
    首先就是在 targets->... 然后创建swift文件时会生成"文件名-Bridging-Header.h"这样一个桥接文件 怎样使用cocoapods就不多说了 最重要的就是在Podfile里面加上use_frameworks! 因为swift使用的是框架而不是静态库
  • Swift 中调用OC代理

    千次阅读 2019-09-17 14:51:16
    oc @protocol EVCommonDelegate <NSObject> @optional - (void)onLoginSucceed:(EVUserInfo *_Nonnull)user; @end swift class CloudLoginVC: UIViewController, EVEngineDelegate func onLoginSucceed...
  • 在项目中右键添加一个swift文件,我添加的LearnSwift.swift添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h。...
  • Swift 中如何调用OC的framework

    千次阅读 2019-09-17 14:17:54
    建立桥接头文件 设置桥接文件位置 引入需要的framework #ifndef bridge_h #define bridge_h #import "AFNetworking.h" #endif /* bridge_h */ ...var dataTask = AFHTTPSessionManager.init().post(<...
  • swift使用cocoapods导入oc三方库

    千次阅读 2016-06-16 10:51:08
    这里主要说几个关于cocoapods导入三方库需要注意的问题和我遇到的坑 1、swift语言使用cocoapods配置...2、swift调用oc的三方库  a、要建立一个桥接文件,然后在target——>build setting中搜索bridg 把Objectiv
  • 浅谈SwiftOC的区别

    万次阅读 2018-06-07 14:30:50
    本文转自:https://www.cnblogs.com/yajunLi/p/6862164.html一、Swift和Objective-C的联系Swift和Objective-C共用一套运行...其次就是,OC之前积累的很多类库,在Swift中大部分依然可以直接使用,当然,Swift3之后,...
  • Swift调用Objective C的FrameWork

    千次阅读 2015-04-08 11:21:06
    最近在写博客的时候,Demo提供的都是OC的代码,对于Swift都有些生疏了,所以,最近可能会集中用Swift来提供Demo源码。很多Github的库经过很多年的发展,源码都是OC写的,,所以,用Swift调用OC的库就是开发中难免...
1 2 3 4 5 ... 20
收藏数 4,599
精华内容 1,839
关键字:

oc引用swift