日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

swift:Optional Type 、Swift和Objective-C混编的讲解

發(fā)布時(shí)間:2023/12/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。