Swift学习Day01(Object_c 与Swift的相互调用 )
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
從今天開(kāi)始:
? ? 學(xué)習(xí)一門(mén)新門(mén)的語(yǔ)言Swift,之前常用的語(yǔ)言 ?java 、object—c;相信 學(xué)起swift來(lái),也會(huì)很快的;
? ?之前看了大量的文章,結(jié)合大神的,外加自己理解,來(lái)說(shuō)一說(shuō) 在xcode里swift、與object-c是如何調(diào)用;
? ?之前看了很多文章,大家直接上來(lái)就是教你怎么做,對(duì)于我總想知道為啥的人來(lái)說(shuō),總感覺(jué)解決不了我的問(wèn)題;現(xiàn)在我把我的理解來(lái)分享一下,希望可以讓大家很快從object_c的基礎(chǔ)上過(guò)度到swift上來(lái);
? ? ?
? ? ? 首先要理清楚:oc與 swift 的相互調(diào)用 ;不再是在同一個(gè)文件里面混編;object-c與c,c++可以很好的實(shí)現(xiàn)混編;但是 oc與swift是相互獨(dú)立的;oc與swfit的語(yǔ)法類似,確是完全不一樣的,它們是兩種語(yǔ)言;xcode 能夠很好的將這兩種語(yǔ)言做映射 ,但不代表你可以在oc中寫(xiě)swif,在swif寫(xiě)oc;
? ? 接著:oc與swift的相互調(diào)用,指的是,在oc中你可以用 swift寫(xiě)好的類,也可以說(shuō),你就把swift 當(dāng)成oc,在oc里使用;反之一樣;
? ? ?它倆的映射過(guò)成交給頭文件去處理;在oc工程里,在你創(chuàng)建swfit文件時(shí),xcode就會(huì)提示你創(chuàng)建頭文件;例如:TestSwift-Bridging-Header.h
? ? ?接下來(lái)使用一個(gè)例子來(lái)說(shuō)明;?object-c 與swift ?相互調(diào)用 ? ?
? ? ? ? a、創(chuàng)建一個(gè)ios工程 語(yǔ)言用?object-c ?,這個(gè)應(yīng)用很簡(jiǎn)單,使用uiwebview組件加載了h5頁(yè)面;默認(rèn)背景是白色;用swift,讓其變?yōu)樗{(lán)色;(功能沒(méi)有意義只是為了測(cè)試一下)
? ? ? ? ? ??
? ? ? ? b、創(chuàng)建一個(gè)test.swift ,默認(rèn)生成Study-Bridging-Header.h
? ? ? ? ? ? ? ? 定義一個(gè)方法:viewcontroller的背景為藍(lán)色
? ? ? ? ? ? ? ?參數(shù):UIviewControler
? ? ? ? ? ? ? ?返回值:無(wú) (swift的語(yǔ)法后面慢慢講)
? ? ? ? ? ? ? ?功能:設(shè)置背景為藍(lán)色
? ? ? ? ? ? ? ??test.swift ?文件內(nèi)容
? ? ? ? ? import Foundation//引入頭文件(之前的框架都可用)
? ? ? ? ? //@objc ? ?說(shuō)明這個(gè)類可以 在oc中使用
? ? ? ? ? @objc ? class Test:NSObject { ??
? ? ? ? ? //func 申明這是個(gè)方法、函數(shù) ??setBackColor:名稱 ??
? ? ? ? ? ?//params(參數(shù)):UIViewController(參數(shù)類型) ?
? ? ? ? ? ?func setBackColor(params:UIViewController)? {
? ? ? ? ? ? ? ?params.view.backgroundColor=UIColor.blueColor();//功能
?? ? ? ?
? ? ? ? ? }}
? ? ? ? ? 大家有沒(méi)有發(fā)現(xiàn),在這個(gè)swift 類中,我們用到了我們?cè)趏bject-c中熟悉的;這里想要其生效
? ? ? ? 需要在Study-Bridging-Header.h中 加上
? ? ? ? ? ?#import "ViewController.h"
? ? ? ? ?
? ? ? ? ? ? ? 這里我們是不是就用到了oc寫(xiě)的類;
? ?c、在ViewController.m ?使用 swift
? ? ?引入頭文件“#import?"Study-swift.h" ?Study 為工程名,后面固定不變
? ?//調(diào)用swift?
? ? Test *test= ? [[Test alloc]init];
? ? [test setBackColor:self];
? ? ??
? ??
??
? d、最后結(jié)果背景變藍(lán);? ??
??
?總結(jié):
? ? ? ? ? ? ? ? 在oc 中使用 swift 需要 ??引入頭文件“#import?"Study-swift.h" ? ? ? ?
? ? ? ? ?在swift 中使用 oc?需要 在?Study-Bridging-Header.h引入你用到的類的頭文件
? ? ? ??
? ?
轉(zhuǎn)載于:https://my.oschina.net/xiuer/blog/1068569
總結(jié)
以上是生活随笔為你收集整理的Swift学习Day01(Object_c 与Swift的相互调用 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 制作EOT字库
- 下一篇: 在未来给我们看病的将是医疗机器人?