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