swift:Optional Type 、Swift和Objective-C混编的讲解
生活随笔
收集整理的這篇文章主要介紹了
swift:Optional Type 、Swift和Objective-C混编的讲解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
??????swift中的Optional Type的?和!含義:其實(shí)就是一個(gè)裝包和拆包的過(guò)程
optional的含義: Optional事實(shí)上是一個(gè)枚舉類型,Optional包含None和Some兩種類型,而nil就是Optional.None,非nil就是Optional.Some。如果Optional變量在聲明時(shí)不初始化,swift會(huì)調(diào)用init()來(lái)初始化變量為nil,而用非nil的值來(lái)初始化變量時(shí),會(huì)通過(guò)Some(T)把該原始值包裝,所以在之后使用的時(shí)候我們需要通過(guò)解包取出原始值才能使用。? ? ? ???問(wèn)號(hào)? ? ? ?a.聲明時(shí)添加?,告訴編譯器這個(gè)是Optional的,如果聲明時(shí)沒(méi)有手動(dòng)初始化,就自動(dòng)初始化為nil ? ???b.在對(duì)變量值操作前添加?,判斷如果變量是nil,則不響應(yīng)后面的方法。 ? ? ? ??? ?嘆號(hào)! ? ? ?a.聲明時(shí)添加!,告訴編譯器這個(gè)是Optional的,并且之后對(duì)該變量操作的時(shí)候,都隱式的在操作前添加! ? ???b.在對(duì)變量操作前添加!,表示默認(rèn)為非nil,直接解包進(jìn)行處理 使用?的場(chǎng)景: 可選?裝包: 使用!的場(chǎng)景: 可選隱式解包: 必須使用!解包: ? 總結(jié)一下: ? ??????swift和Objective-C混編使用 swift中使用OC:? 在項(xiàng)目工程的Build Settings中搜索并設(shè)置Bridging-Header-------- 頭文件橋接,xxx(項(xiàng)目名)-Bridging-Header.h中導(dǎo)入OC中需要的類頭文件,即?#import “Header.h” OC中使用swift:? 在項(xiàng)目工程的Build Settings中搜索并設(shè)置packaging中的Product Module Name的名稱—————然后在OC類中導(dǎo)入swift頭文件,即?#import xxx(Product Module Name)-Swift.h? 混編的具體步驟演示如下: 前期工作: 第一步:創(chuàng)建一個(gè)swift工程文件Project,生成Project文件 第二步:在建好的swift項(xiàng)目中新建一個(gè)swift文件,設(shè)置類名為學(xué)生類Student,點(diǎn)擊Next創(chuàng)建成功,生成Student.swift文件 第三步:再創(chuàng)建一個(gè)Objective-C文件,設(shè)置類名為課程類Course 第四步:點(diǎn)擊Next,此時(shí)彈出一個(gè)彈出框,點(diǎn)擊yes即可,生成Course.h和Course.m文件,還有xxx(工程名)-Bridging-Header.h文件,即 Project-Bridging-Header.h ? 好了,前期工作準(zhǔn)備完畢,現(xiàn)在就是Objective-C和Swift的類混編使用了: 在Swift中使用Objective-C的類: 1.選中Project-Bridging-Header.h,進(jìn)入它的文件中,然后導(dǎo)入Course.h頭文件,即橋接雙方的頭文件 2.此時(shí)就可以在Student.swift中使用Course類了,如下所示 在Objective-C中使用Swift的類: 方法一: 1.進(jìn)入工程的面板中找到Build Settings,搜索packaging,截圖如下 2.可以看到Product Module Name這一項(xiàng),既可以復(fù)制他后面的名字作為 $(PRODUCT_NAME:c99extidentifier)-swift.h頭文件,當(dāng)然也可以自己重新設(shè)置名稱,不過(guò)不能以數(shù)字0開(kāi)頭,命名要規(guī)范。我設(shè)置一個(gè)新名字為"ProductName-swift.h",然后按Command+B快捷鍵編譯一下,因?yàn)楸仨毾染幾g生成Student.swift中的所有內(nèi)容,然后才能在Course類中導(dǎo)入這個(gè)頭文件 3.編譯成功后,就可以在Course類中導(dǎo)入ProductName-swift.h了,即#import "ProductName-swift.h",可以看到如下我聲明得到學(xué)生對(duì)象此時(shí),你可以按住Command鍵,然后點(diǎn)擊#import “ProductName-Swift.h”可以進(jìn)去看看編譯的所有文件
? ???方法二:
在創(chuàng)建工程時(shí),可以直接在Objective-C的文件中導(dǎo)入固定的文件方式并編譯一下即可,也即:
import "ProjectName-Swift.h",這個(gè)ProjectName:開(kāi)始創(chuàng)建的工程名
在此實(shí)例下,導(dǎo)入方式為:import "Project-Swift.h"
?
轉(zhuǎn)載于:https://www.cnblogs.com/XYQ-208910/p/4904379.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的swift:Optional Type 、Swift和Objective-C混编的讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: GitHub(从安装到使用)
- 下一篇: Confluence 6 访问你的宏正文