Swift学习Day01(Object_c 与Swift的相互调用 )

前端之家收集整理的这篇文章主要介绍了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引入你用到的类的头文件

猜你在找的Swift相关文章