Swift学习Day01(Object_c 与Swift的相互调用 )
為什么80%的碼農都做不了架構師?>>> ??
從今天開始:
? ? 學習一門新門的語言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引入你用到的類的頭文件
? ? ? ??
? ?
轉載于:https://my.oschina.net/xiuer/blog/1068569
總結
以上是生活随笔為你收集整理的Swift学习Day01(Object_c 与Swift的相互调用 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作EOT字库
- 下一篇: 在未来给我们看病的将是医疗机器人?