Swift学习Day01(Object_c 与Swift的相互调用 )
从今天开始: 学习一门新门的语言Swift,之前常用的语言 java 、object—c;相信 学起swift来,也会很快的; 之前看了大量的文章,结合大神的,外加自己理解,来说一说 在xcode里swift、与object-c是如何调用; 之前看了很多文章,大家直接上来就是教你怎么做,对于我总想知道为啥的人来说,总感觉解决不了我的问题;现在我把我的理解来分享一下,希望可以让大家很快从object_c的基础上过度到swift上来;
首先要理清楚:oc与 swift 的相互调用 ;不再是在同一个文件里面混编;object-c与c,c++可以很好的实现混编;但是 oc与swift是相互独立的;oc与swfit的语法类似,确是完全不一样的,它们是两种语言;xcode 能够很好的将这两种语言做映射 ,但不代表你可以在oc中写swif,在swif写oc; 接着:oc与swift的相互调用,指的是,在oc中你可以用 swift写好的类,也可以说,你就把swift 当成oc,在oc里使用;反之一样; 它俩的映射过成交给头文件去处理;在oc工程里,在你创建swfit文件时,xcode就会提示你创建头文件;例如:TestSwift-Bridging-Header.h
接下来使用一个例子来说明;object-c 与swift 相互调用 a、创建一个ios工程 语言用object-c ,这个应用很简单,使用uiwebview组件加载了h5页面;默认背景是白色;用swift,让其变为蓝色;(功能没有意义只是为了测试一下)
b、创建一个test.swift ,默认生成Study-Bridging-Header.h 定义一个方法:viewcontroller的背景为蓝色 参数:UIviewControler 返回值:无 (swift的语法后面慢慢讲) 功能:设置背景为蓝色
test.swift 文件内容 import Foundation//引入头文件(之前的框架都可用) //@objc 说明这个类可以 在oc中使用 @objc class Test:NSObject { //func 申明这是个方法、函数 setBackColor:名称 //params(参数):UIViewController(参数类型) func setBackColor(params:UIViewController) { params.view.backgroundColor=UIColor.blueColor();//功能
}} 大家有没有发现,在这个swift 类中,我们用到了我们在object-c中熟悉的;这里想要其生效 需要在Study-Bridging-Header.h中 加上 #import "ViewController.h"
这里我们是不是就用到了oc写的类;
c、在ViewController.m 使用 swift
引入头文件“#import"Study-swift.h" Study 为工程名,后面固定不变 //调用swift Test *test= [[Test alloc]init]; [test setBackColor:self];
d、最后结果背景变蓝;
总结: 在oc 中使用 swift 需要 引入头文件“#import"Study-swift.h" 在swift 中使用 oc需要 在Study-Bridging-Header.h引入你用到的类的头文件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |