Swift Object-c 相互调用

我们先看一下Swift调用Object-c

首先我们创建一个OC类

到最后一步的时候发现多了一个确认框,点击Yes 系统会生成一个Swift和OC的转换桥梁。

他的命名规则是 项目名称-Bridging-Header.h  这个是系统生成的我们直接用。

接下来我们给刚创建的OC类添加一个方法

#import <Foundation/Foundation.h>

@interface TestSwift2OC : NSObject

-(void)TestOCStr;
@end

实现方法

#import "TestSwift2OC.h"

@implementation TestSwift2OC

-(void)TestOCStr
{
    NSLog(@"这个是OC方法");
}
@end

然后我们在刚才系统生成的文件TestSwiftOC-Bridging-Header.h 中添加一条语句

#import "TestSwift2OC.h"

好了  ,我们在swift中可以调用了,试一下

        var testSwift2oc=TestSwift2OC()
        testSwift2oc.TestOCStr()

是不是已经出来了

下面我们看一下OC调用swift

我们新建一个swift 定义一个方法

import UIKit

class TestOC2Swft: NSObject {
    func testSwftStr(){
        println("这个是Swift方法")
    }
}

然后我们在需要调用swift 类的 oc类中首先导入一个头文件

项目名称-Swift.h (这个是系统自动生成的)

看代码

#import "TestSwiftOC-Swift.h"

然后我们在oc中调用

    TestOC2Swft *testOC2Swift=[[TestOC2Swft alloc]init];
    [testOC2Swift testSwftStr];

调用就可以了

苹果开发群 :414319235  欢迎加入  欢迎讨论问题

苹果开发群 :414319235  欢迎加入  欢迎讨论问题

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

时间: 2024-11-05 12:32:19

Swift Object-c 相互调用的相关文章

IOS Object和javaScript相互调用

在IOS开发中有时会用到Object和javaScript相互调用,具体步骤如下: 1. Object中执行javascript代码,这个比较简单,苹果提供了很好的方法 - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 2. javascript执行过程中返回给Object的数据或者调用Object方法,这个时候就需要用到 UIWebView的地址重定向功能,主要代码如下: (1)创建UIWebView

OC与swift相互调用

OC与swift相互调用 一.OC调用swift文件 二.swift调用OC文件 三.注意和总结 添加: 四.自定义桥接文件 一.OC调用swift文件 在OC项目中创建一个swift文件的时候,Xcode 会提示 需要创建一个桥接文件,点确定创建桥接文件,Xcode会自动创建一个桥接文件 名字:工程名-Bridging-Header.h 这个桥接文件是 swift 调用OC文件的时候用的 1. 进入TARGETS ->Build Settings -> Packaging 中 设置Defin

ASP.NET的后台代码和前台JS代码相互调用

在实际的Web开发中,我们可能会常常遇到后台调用前台JS代码或者前台JS调用后台代码的情况.今天就把比较实用的前后台相互调用的方法总结出来和大家分享. <1>后台代码调用前台JS代码 一.说到后台代码调用前台的JS代码很多人首先就会想到使用 ClientScript.RegisterStartupScript()方法,该方法主要是注册启动脚本文本,即在后台执行调用前台JS代码 该方法有两个重载, 1.ClientScript.RegisterStartupScript(Type type,st

JS前后台方法的相互调用

一.前台调用后台的方法: 1.在后台编写你要调用到前台的方法,如下://javaScript函数中执行C#代码中的函数public string str() { return "javaScript方法中执行C#代码中的方法"; } 2.前台用JS就可以实现调用后台的方法,如下:<script type="text/javascript"> function Test() { var a = "<%=str()%>"; /

C# Matlab 相互调用

转自禾木junjie原文C# Matlab 相互调用 测试环境 VisualStudio2013 / .net4.0 Matlab2015b 高版本的matlab对外接其它语言做得很方便了,并不需要一堆的配置. 其它语言与matlab的交互操作也类似. C#调用Matlab 基本思路:将matlab函数打包成DLL文件,联合matlab数据支持DLL(MWArray.dll),交付给其它语言程序使用. 1.Matlab端的操作 编写matlab函数: function [result,m,n]

java JNI 的实现(2)-java和C/C++的相互调用.

目录 概述 一,java代码 二,稍微注意通过javah生成的'C/C++'.h头文件和源java代码的关系 三,在C/C++中实现java的native方法(完整C/C++) 1,修改age,即Java_juk_demo_JSay_changeAge方法 2,调用java中的'javaStatic'方法,和上面C/C+实现方法相似 3,最后测试 概述 从第一篇java JNI 的实现(1)-又进一步加深对JVM实现的理解对JNI有了大致的理解之后,并知道JNI中java如何调用C/C++等,这

[转]C# winform与Javascript的相互调用

C# winform与Javascript的相互调用 <html> <head> <meta http-equiv="Content-Language" content="zh-cn"> <script language="javascript" type="text/javascript"> <!-- 提供给C#程序调用的方法 --> function messag

Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似. 为了让大家容易理解,我写了一个简单的Demo,具体步骤如下: 第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面). 第二步:修改main.xml布局文件,增加了一个WebView控件还有But

ASP.NET前台后台相互调用

1.前台调用后台方法 //前台代码 <script type="text/javascript" language="javascript"> function test() { var a = "<%=GetStr()%>";//调用后台GetStr()方法 alert(a); } </script> <asp:Button ID="btnTest" OnClientClick=&q

WebView中Js与Android本地函数的相互调用

介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Android原生函数的相互调用就必不可少了.这里写了一个demo,实现点击html中的图片进行本地展示. 原理 1.Android调用js很简单,直接webView.loadUrl("javascript:JS中的方法名称()");即可. 2.js调用Android方法,需要使用WebView.