最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解swift中xcworkspace多項目管理

 更新時間:2017年11月26日 17:06:04   投稿:laozhang  
給大家詳細講解了IOS開發(fā)中swift語言xcworkspace多項目管理的方法和介紹,一起參考一下。

給大家詳細簡介了xcworkspace多項目管理的設(shè)置方法,一起來學(xué)習(xí)下。

技術(shù)說明:

今天在這里分享 swift下的 xcworkspace多項目管理(架構(gòu)思想),能為我們在開發(fā)中帶來哪些便捷?能為我們對整個工程的維護,整理,模塊解偶帶來哪些優(yōu)勢?以及在swift與OC下的混編開發(fā)中的調(diào)用會遇到哪些問題?

帶著問題探研:

(1).xcworkspace工程怎么創(chuàng)建?工程framework如何創(chuàng)建?主工程項目如何創(chuàng)建?

(2).主工程調(diào)用子工程framework如果配置?

(3).framework與framework之間如何調(diào)用?

(4).xcworkspace工程Pods的集成,framework的Pods第三的集成?

(5).Podfile文件的編輯,以及對應(yīng)主工程,對應(yīng)framework的編寫方式?

--------------歷史分析-----------------------

你還在搭建這樣的框架嗎?

缺點:

這種方式搭建的項目會隨著項目功能不斷的強大,從而會使模塊文件越來越龐大,也會使項目維護思維近近模糊,

業(yè)務(wù)層代碼與數(shù)據(jù)層代碼和項目核心層代碼相互交織,無法拆分,不符合一個中上等級以及長遠發(fā)展公司型的構(gòu)架思想!

來看下大公司項目的搭建吧:

優(yōu)點很明確,個個模塊可以拆分,架構(gòu)思想清晰明朗,業(yè)務(wù)層獨立清晰沒有耦合

--------------xcworkspace項目創(chuàng)建--------------

File -> New -> Workspace

--------------子工程framework創(chuàng)建 (注意:新建主工程,不要創(chuàng)建成framework)

1 :File -> New -> Project -> framework (創(chuàng)建的是靜態(tài)庫)

 

2 :修改添加目標到workspace:(就是上一步創(chuàng)建的Workspace工程)

 

 

--------------主工程調(diào)用子工程framework相關(guān)配置--------------

第一:子工程暴露文件出來:必須順序執(zhí)行

BuildPhases -> Headers -> Public(只有放入共有欄,才能調(diào)用)->  導(dǎo)入項目代碼文件(一般默認放在Project中)

BuildPhases -> Headers -> Public ->  中導(dǎo)入需要暴露給的OC 的頭文件 (一般默認實現(xiàn))

(注意:只有混編的時候才需要導(dǎo)入,也就是沒有混編,framework中的.h文件可以刪除)

BuildPhases -> Compile Sources ->  中導(dǎo)入項目代碼文件

第二:把需要提供外部調(diào)用的類,屬性和方法,加public修飾(swift) 

第三:  編譯(⌘+B)一下工程,生成framework(重要,配置如果改動,刪除對應(yīng)生成的framework,重新編譯生成)

——————分別—真機編譯:

——————分別—模擬器編譯:

Show  In  Finder ,確認生成framework

 

第四:主項目導(dǎo)入framework

把生成的framework拖入主項目中(這樣做比較好),

———————不建議以下做法————————

//選擇主項目 ->  General ->  Embedded Binaries -> 選擇framework導(dǎo)入

(Embedded Binaries導(dǎo)入,會同步Linked Frameworks and Librares導(dǎo)入)

 第五:在需要調(diào)用framework   ipa 的文件中  import 相關(guān)framework的工程名,即頭文件,完成

------------------- framework之間相互調(diào)用 ipa --------------

General —>   Linked Frameworks and Libraries —> 導(dǎo)入指定framework

********到這里framework與主項目之間的調(diào)用已經(jīng)完成,可以實現(xiàn)了!

--------------------Pods的集成------------------

第一:創(chuàng)建的主項目,創(chuàng)建的多靜態(tài)庫(注意必須在同一級目錄下)

 

第二:終端cd 項目跟目錄:

 

第三:終端指令:touch Podfile   (此處為空太),創(chuàng)建Podfile文件

第四:Podfile文件的編輯

案列:-------

 platform :ios, ‘8.0' ———可以寫在最上面,標示公用

use_frameworks!  ———用cocoapods導(dǎo)入OC框架到swift項目必須寫

workspace 'MyWorkspace.xcworkspace' //workspace文件名

project 'MyApp2/MyApp2.xcodeproj' //主工程路徑„

  target 'MyApp2' do

  project 'MyApp2/MyApp2.xcodeproj' //工程路徑

  pod 'Masonry', '~> 1.0.2'

end

  target 'MyApp1' do  

   project 'MyApp1/MyApp1.xcodeproj' //framework

   pod 'SnapKit', '~> 1.0.2'

   pod 'SDWebImage', '~> 1.0.2'

end

 

第五:終端下載指令 pod install

第六:framework調(diào)用第三方框架

查看項目:未導(dǎo)入,項目無法調(diào)用

導(dǎo)入查看項目:項目同步

 

 注意:swift 版的framework調(diào)用OC寫的第3方,必須在.h 里面聲明頭文件,才能調(diào)用

 

----------------補充 : 靜態(tài)庫與動態(tài)庫的區(qū)別

 靜態(tài)庫有 .a 和 .framework

動態(tài)庫有.dylib 和 .framework

后來.dylib動態(tài)庫又被蘋果替換成.tbd的形式

靜態(tài)庫和動態(tài)庫是相對編譯期和運行期的:

1.靜態(tài)庫在程序編譯時會被鏈接到目標代碼中,程序運行時將不再需要改靜態(tài)庫

2.動態(tài)庫在程序編譯時并不會被鏈接到目標代碼中,只是在程序運行時才被載入,因為在程序運行期間還需要動態(tài)庫的存在

總結(jié):

同一個靜態(tài)庫在不同程序中使用時,每一個程序中都得導(dǎo)入一次,打包時也被打包進去,形成一個程序。

而動態(tài)庫在不同程序中,打包時并沒有被打包進去,只在程序運行使用時,才鏈接載入(如系統(tǒng)的框架如UIKit、Foundation等),所以程序體積會小很多,但是蘋果不讓使用自己的動態(tài)庫,否則審核就無法通過。

相關(guān)文章

  • 程序遷移到swift 3.0的一些實用技巧

    程序遷移到swift 3.0的一些實用技巧

    Swift項目為適配iOS10,無奈只能更新Xcode 8 ,可是發(fā)現(xiàn)一入3.0深似海,從此幸福是路人。于是邊摸索邊修改,終于完成了代碼遷移。節(jié)后在完成手頭工作后,整理思路把Swift3.0遷移的一些實用技巧分享大家,需要的朋友可以參考下。
    2017-03-03
  • switch實現(xiàn)一個兩數(shù)的運算代碼示例

    switch實現(xiàn)一個兩數(shù)的運算代碼示例

    這篇文章主要介紹了switch實現(xiàn)一個兩數(shù)的運算代碼示例,需要的朋友可以參考下
    2017-06-06
  • Swift?Error的處理方法說明

    Swift?Error的處理方法說明

    wift?是一個類型嚴格的語言,在很多情況下各種不匹配或者強制解包出錯都會導(dǎo)致系統(tǒng)崩潰。所以我們需要進行異常處理,在swift中也叫錯誤處理Error
    2022-08-08
  • Swift中的常量和變量簡單概述

    Swift中的常量和變量簡單概述

    這篇文章主要介紹了Swift中的常量和變量簡單概述的相關(guān)資料,非常具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • 詳解如何在SwiftUI中創(chuàng)建懸浮操作按鈕

    詳解如何在SwiftUI中創(chuàng)建懸浮操作按鈕

    懸浮操作按鈕(Floating Action Button, FAB)是一種在 Android 和 Material Design 中使用的 UI 元素,它用于觸發(fā)特定屏幕的主要操作,下面我們就來詳細介紹一下如何在SwiftUI中創(chuàng)建懸浮操作按鈕,需要的朋友可以參考下
    2023-10-10
  • swift 錯誤處理do catch try try!使用詳解

    swift 錯誤處理do catch try try!使用詳解

    這篇文章主要介紹了swift 錯誤處理do catch try try!使用詳解的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • SwiftUI 中創(chuàng)建反彈動畫的實現(xiàn)

    SwiftUI 中創(chuàng)建反彈動畫的實現(xiàn)

    這篇文章主要介紹了SwiftUI 中創(chuàng)建反彈動畫的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Swift實現(xiàn)倒計時5秒功能

    Swift實現(xiàn)倒計時5秒功能

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)倒計時5秒功能,在“登錄”和“注冊”頁面也有相似功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 解析Swift中的泛型支持與使用

    解析Swift中的泛型支持與使用

    支持泛型意味著可以在規(guī)定參數(shù)類型的情況下更靈活地編寫程序,也是Swift語言先進而又強大的體現(xiàn),這里我們就來解析Swift中的泛型支持與使用:
    2016-07-07
  • swift 可選型的使用詳解

    swift 可選型的使用詳解

    可選性是Swift提供的一個特殊類型,它為我們編寫程序提供便利的條件。這篇文章主要介紹了swift 可選型的使用詳解,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10

最新評論

吐鲁番市| 广宁县| 桑日县| 巴东县| 普陀区| 建湖县| 甘肃省| 铁岭市| 抚松县| 宽城| 靖州| 鄂托克前旗| 稻城县| 镇安县| 霍城县| 云南省| 巴里| 巴彦县| 德令哈市| 临沧市| 抚顺县| 建始县| 化隆| 大宁县| 天镇县| 威信县| 天峨县| 古丈县| 文水县| 吉安市| 凤庆县| 武义县| 浮梁县| 达拉特旗| 社会| 唐河县| 商水县| 定安县| 嘉祥县| 北辰区| 宝清县|