美文网首页
Swift与OC混编-Swift中调用OC方法

Swift与OC混编-Swift中调用OC方法

作者: 神SKY | 来源:发表于2017-07-06 14:28 被阅读287次

前言

       在开发过程中有时候会遇到Swift和OC混编的情况,这篇文章就来简单的实现Swift调用OC的方法。

实现

1.新建一个语言为Swift的工程文件

2.在工程文件中新建一个OC文件


       这个时候回出现一个提示框,点击"Create Bridging Header"。(注:这个关系到引用OC文件)



       点完之后会创建一个header.h的文件,这个文件是用来导入OC的文件的


3.在header.h文件中导入OC的头文件

4.引用OC方法

       OC的.h文件,这里有无参数的方法,有参数的方法,回调的方法,有参数回调的方法和多参数回调的方法,如下:

#import <Foundation/Foundation.h>

@interface OCFile : NSObject

- (void)sayHello;

- (void)saySomething:(NSString *)str;

- (void)sayCallback:(void(^)(NSString *))callback;

- (void)saySomething:(NSString *)str callback:(void(^)(NSString *))callback;

- (void)saySomething1:(NSString *)str1 Something2:(NSString *)str2 callback:(void(^)(NSString *))callback;
@end

        OC的m文件如下:

#import "OCFile.h"

@implementation OCFile

- (void)sayHello
{
    NSLog(@"Hello World");
}

- (void)saySomething:(NSString *)str
{
    NSLog(@"%@",str);
}

- (void)sayCallback:(void (^)(NSString *))callback
{
    if (callback) {
        callback(@"Hello World 3");
    }
}

- (void)saySomething:(NSString *)str callback:(void (^)(NSString *))callback
{
    if (callback) {
        callback(str);
    }
}

- (void)saySomething1:(NSString *)str1 Something2:(NSString *)str2 callback:(void (^)(NSString *))callback
{
    if (callback) {
        callback([NSString stringWithFormat:@"%@ %@",str1,str2]);
    }
}
@end

       在Swift中的引用方式如下:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let oc = OCFile();
        oc.sayHello();
        
        oc.saySomething("Hello World 2");
        
        oc.sayCallback { (str) in
            print(str!);
        }
        
        oc.saySomething("Hello World 4") { (str) in
            print(str!);
        }
        
        oc.saySomething1("Hello World", something2: "5") { (str) in
            print(str!);
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }


}

       程序跑起来之后就可以看到如下打印:


希望这篇文章对各位看官有所帮助,Demo下载地址:Demo

相关文章

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • No visible @interface for 'X

    今天研究了一下Swift和OC混编,在OC文件中调用Swift方法时候报错: 解决方法 因为Swift提供给OC的...

  • Swift与OC、C++混编

    Swift与OC混编 Swift工程中调用OC代码 不需要在Swift中import OC的类,统一在桥接文件中导...

  • OC与Swift混编

    OC与Swift混编 一.objectivec与Swift相互调用对照 OC interface文件如下 转换后对...

  • Swift与OC混编

    如何在OC工程中混编Swift代码? 1. Swift中调用OC代码 在OC工程中新建swift文件时, 会自动生...

  • Swift-Basic Learning

    1. Siwft与OC混编 OC调用SWIfFT SWIfFT调用OC 2. Swift用cocoapods管理...

  • swift 与oc混编 ,找不到“Project Name-Sw

    当我们在用swift 与 oc 混编的工程中,oc文件调用swift 定义的类时,在oc的.h 文件中导入头文件 ...

  • 关于OC混编Swift,-Swift文件里找不到Swift方法问

    今日混编时,OC调用Swift的类方法,发现找不到方法,查看xxx-Swift文件中没有生成对应的OC类方法 随后...

  • OC调用swift方法

    现在OC与swift混编的项目越来越多,这就涉及到两种语言互相调用方法的问题。 在swift调用OC方法上还是比较...

  • iOS开发中 OC与Swift混编

    人工SEO 关键词 : iOS 开发 ,iOS 混编 ,OC调用swift ,swift调用OC ? 前言 :Sw...

网友评论

      本文标题:Swift与OC混编-Swift中调用OC方法

      本文链接:https://www.haomeiwen.com/subject/qzyhhxtx.html