Swift与OC交互

Swift与OC交互

源码请点击github地址下载。

主要功能:

  • 1.在OC项目里:

    • 1.1.OC代码调用Swift方法
    • 1.2.Swift代码调用OC代码。
  • 2.在Swift项目:
    • 2.1.Swift代码调用OC代码
    • 2.2.OC代码调用Swift方法。

不管在什么项目里,在创建另外一种开发语言文件时系统会提示创建桥接文件OCAndSwift-Bridging-Header.h(其中OCAndSwift代表项目名称。),一定得有这桥接文件swift代码才能调用OC。

  • 功能1.1与2.2
    他们都是OC代码调用Swift方法,不管是在什么项目中,使用方法都一样。
    只须在需要使用Swift方法的OC文件中倒入头文件 #import "OCAndSwift-swift.h"即可,在任何oc文件中导入的头文件都一样,其中OCAndSwift代表项目名称。
  • 功能1.2与2.1
    他们都是Swift代码调用OC代码。
    将OC代码所在头文件放在OCAndSwift-Bridging-Header.h文件里即可,可供任何位置的swift调用,如导入:#import "LXHelpClass.h"。

Swift代码调用OC方法如下:

  func tappedButton(sender:UIButton!) {
      self.myImageView.image = LXHelpClass.getEllipseImageWithImage(self.myImageView.image)
      print(sender.tag, terminator: "swift")
  }
 @interface LXHelpClass : NSObject
 + (UIImage *)getEllipseImageWithImage:(UIImage *)originImage;
 @end

OC控制器push到Swift控制器

#import "OCAndSwift-swift.h"
- (void)pushBtnClicked:(UIButton *)sender
{
    SwiftController *swiftVC = [[SwiftController alloc] init];
    [self.navigationController pushViewController:swiftVC animated:YES];
}
class SwiftController: UIViewController {
    override func viewDidLoad() {
    ...
    }
    ...
}

swift的控制器效果图如下,圆形头像是swift调用oc方法实现的功能:

screen.png

QQ:2239344645  我的github

时间: 2024-10-22 03:04:55

Swift与OC交互的相关文章

在项目里交叉使用Swift和OC

Swift and Objective-C in the Same Project 在项目里交叉使用Swift和OC Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序,称为混合+匹配(mix and match),用这种方式可以一边使用享受新语言的快速特性,一边无缝的接合你已有的OC代码(原文听起来好NB的样子,其实也就那么回事),不管项目最初是用OC编写的还是新建的Swift项目,都可以在这个项目里用OC和Swift混合继续开发 Importing Object

Swift与OC混编

Swift一出来就比较受人欢迎,但是还是有很多的第三方库是不支持Swift的,个人也感觉Swift还有很长的路要走. 而且最近连Swift的创始人都离开苹果公司了......... 加入Swift用到了第三方的东西那怎么办呢,其实很简单,Xcode会自动帮你创建一个桥接文件,用来连接Swift和OC这两种语言,同样的在OC里面用Swift也是一样. 其实步骤都一样的, 第一种:在Swift中连接OC 步骤: 在新建一个OC类,到最后Xcode就会自动提示要不要创建Swift和OC的链接文件,点击

转载 【iOS开发】网页JS与OC交互(JavaScriptCore) OC ----->JS

目标 本文介绍利用苹果在iOS7时发布的JavaScriptCore.framework框架进行js与OC的交互.我们想要达到的目标是: OC调用网页上的js方法 网页js调用APP中的OC方法 JavaSciptCore.framework框架介绍 JavaScriptCore是webkit的一个重要组成部分,主要是对js进行解析和提供执行环境.具体介绍请看这篇简书的文章:JavaScriptCore 使用 准备环境 创建一个名为JS与OC交互Demo的iOS工程.然后在storyboard添

swiftDay01笔记 --swift和OC的不同点 && swift的基础语法

1.创建对象 带圆括号 * OC:      alloc initWithXXX 方法 * Swift:   (xxx:) //OC : //UIView *view = [UIView alloc]init]; //Swift : let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 2.方法调用   用点 * OC:     [UIColor redColor]; * Swift    UIColor.re

【Swfit】Swift与OC两种语法写单例的区别

Swift与OC两种语法写单例的区别 例如写一个NetworkTools的单例 (1)OC写单例 1 + (instancetype)sharedNetworkTools { 2 static id instance; 3 4 static dispatch_once_t onceToken; 5 6 dispatch_once(&onceToken, ^{ 7 instance = [[self alloc] init]; 8 //这里可以做一些初始化 9 }); 10 11 return i

Swift与Objective-C交互

在同一个工程中是可以同时使用Swift和OC的,但不可以同时出现在同一个文件中. OC调用Swift相关信息的方法 在***.m文件中导入工程名-Swift.h即可. 如工程名为ABC,则在需要使用Swift相关信息的.m文件中#import "ABC-Swift.h"即可. Swift调用OC相关信息的方法 当在Swift/OC工程中创建OC/Swift文件时,会有提示,如下图 点击Yes,会创建一个工程名-Bridging-Header.h的文件,将Swift使用的相关OC的.h文

Js与OC交互

Js与OC交互 源码请点击github地址下载. 下面讲述实现OC和JS的交互,它们相互调用,其中需要写一个静态的HTML文件用于提供JS方法. 效果图如下: screen.png 一.OC调用JS: 不说闲话,看代码如下 需要先在js文件定义方法postStr供oc调用 function postStr(string) { return 'I am the return parameter JS, and param ' + string; } oc代码只需一句即可调用 NSString *s

在项目里交叉使用Swift和OC【转】

Swift and Objective-C in the Same Project在项目里交叉使用Swift和OC Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序,称为混合+匹配(mix and match),用这种方式可以一边使用享受新语言的快速特性,一边无缝的接合你已有的OC代码(原文听起来好NB的样子,其实也就那么回事),不管项目最初是用OC编写的还是新建的Swift项目,都可以在这个项目里用OC和Swift混合继续开发 Importing Objecti

Swift与OC的混编

自04年苹果推出了Swift之后,确实很快就受到许多开发者的欢迎但在实际开发时,可能有许多第三方库并未实现代码Swift化,这时就需要Swift与OC的混编技巧: 1.在.h文件中引用Swift的类和方法,需要在.h文件中进行引用,需要注意引用格式: #import "yourProjectName-swift.h" 2.在Build Settings -> Packaging -> Defines Module 改为YES 3.在Swift中引用OC的方法与类,则需在 B