Swift调用OC和C

原创 2015年07月09日 14:48:17

Swift文件:main.swift

import Foundation

//Swift调用C函数
desc1()

//Swift调用OC
//拿到OC类
var funcClass = Root()
funcClass.desc2()

OC文件:Root.h

#import <Foundation/Foundation.h>

@interface Root : NSObject

-(void)desc2;

@end

Root.m

#import "Root.h"

@implementation Root

//求和函数
//1、定义函数
int sum2(int a, int b)
{
    return a+b;
}

-(void)desc2
{
    //2、声明Block
    int (^p)(int, int);
    
    //3、函数指针指向函数
    //    p = sum2;
    p = ^(int a, int b) //把函数赋值给Block
    {
        return a+b;
    };
    
    //4、使用
    int result = p(10, 40);
    printf("OC方法输出result:%d\n", result);
}

C函数文件:

Fun.c

#include <stdio.h>

//求和函数
//1、声明函数
int sum1(int a, int b)
{
    return a+b;
}

void desc1()
{
    //2、声明函数指针
    int (*p)(int, int);
    
    //3、函数指针指向函数
    p = sum1;
    
    //4、使用
    int result = p(10, 20);
    printf("C函数输出结果:%d\n", result);
}

桥接文件:工程名称-Bridging-Header.h

//这里面需要导入 桥接的C或OC的头文件

//导入C函数
void desc1();

//导入OC头文件
#import "Root.h"


版权声明:本文为博主原创文章,未经博主允许不得转载。

详解swift和OC以及C语言的混编(不看后悔!)

Swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,或者有一些第三方使用OC写的,没有swi...
  • zlj_jeck
  • zlj_jeck
  • 2016年05月26日 08:13
  • 15469

详解swift和OC以及C语言的混编

前言:         Swift 语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,或者有一...
  • SYH523364
  • SYH523364
  • 2017年04月17日 10:14
  • 498

OC 与Swift混合开发之相互调用

首先在项目中,为了保障工作的稳定性,使用混合式开发室最好的选择(前提是自己能够看得懂自己写的代码)。一、首先说一下调用的问题:OC->Swift(OC调用Swift) 首先配置一下环境:如图 ...
  • IOSWEB
  • IOSWEB
  • 2016年07月26日 16:57
  • 2511

Objective C转Swift注意事项(一)合理使用结构体,枚举,extensions

前言14年Swift刚出的时候开始学习的Swift,后来由于项目需要,一直写App还是用的OC。最近打算把Swift重新捡起来,这个Objective C转Swfit系列就当成是我的复习笔记,顺便写成...
  • Hello_Hwc
  • Hello_Hwc
  • 2016年07月10日 11:21
  • 2578

iOS开发之OC与swift开发混编教程,代理的相互调用,block的实现。OC调用Swift中的代理, OC调用Swift中的Block 闭包,swift 3.0

最新一些学妹问起,所以抽点时间来写的,适合入门级别的swift 与 OC 混编 的程序猿。   本文章将从两个方向分别介绍 OC 与 swift 混编   1. 第一个方向从 swift工程 中引入...
  • zhonggaorong
  • zhonggaorong
  • 2016年11月15日 17:41
  • 4064

oc中调用swift中的struct

oc中调用swift中的struct  在oc中是不能调用struct里面的内容的,你想在类似class前面加个@objc的方法加在struct前面,你是发现是不行的,那但是我们又想在oc中调...
  • wahaha13168
  • wahaha13168
  • 2016年09月05日 10:26
  • 623

OC工程调用Swift方法

为防止出问题,建议以这样的方法做: 1.建一个OC工程命名为SwiftOC 2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建...
  • zww1984774346
  • zww1984774346
  • 2016年01月12日 20:13
  • 6275

Swift比Objective-C有什么优势

Swift比Objective-C有什么优势
  • ThatBoys
  • ThatBoys
  • 2016年07月18日 14:47
  • 1289

Swift学习之和Objective-C的联系与区别

swfit和OC间的 联系1.swift句尾不需要分号 ,除非你想在一行中写三行代码就加分号隔开。2.swift不要写main函数 ,程序默认从上往下执行3.swift不分.h和.m文件 ,一个类只有...
  • yxys01
  • yxys01
  • 2016年07月05日 10:14
  • 856

swift与OC混编(方法调用)

原创文章转载请注明出处。 背景在上一篇文章中简单讲述了怎么创建Swift和OC的混编工程。本篇讲一下Swift和OC的混编工程中的方法调用。OC调用SwiftOC调用Swift方法比较简单。但是需要注...
  • showhilllee
  • showhilllee
  • 2016年01月29日 11:48
  • 9397
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift调用OC和C
举报原因:
原因补充:

(最多只允许输入30个字)