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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[iOS] 建立与使用Framework

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [iOS] 建立与使用Framework 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[iOS] 建立與使用Framework

前言

使用XCode開發iOS項目時,開發人員可以將可重用的程序代碼,封裝為Library或是Framework來提供其他開發人員使用。這兩種封裝方式在使用的時候:Library需要將.a封裝檔與所有公開的.h檔提供給使用者加入項目,而Framework則只需要將.framework封裝檔提供給使用者加入項目。就使用情景來說,提供單一.framework封裝檔會顯得比較簡單方便。本篇文章介紹如何將可重用的程序代碼封裝為Framework,主要為自己留個紀錄,也希望能幫助到有需要的開發人員。

建立

首先開啟XCode來建立一個新項目:「MyFramework」,專案類型選擇為Cocoa Touch Framework。這個項目用來封裝可重用的程序代碼,提供其他開發人員使用。

  • 專案類型

接著在MyFramework加入一個新類別:「MyClass」,做為提供給其他開發人員使用的程序代碼。

  • MyClass.h

    #import <Foundation/Foundation.h> @interface MyClass : NSObject// methods - (NSString*) getMessage;@end
  • MyClass.m

    #import "MyClass.h"@implementation MyClass// methods - (NSString*) getMessage {return @"Clark"; }@end

建立好MyClass之后,接著要把MyClass.h設定為Public,讓使用的開發人員可以加入類別的.h檔參考。

  • Public Headers

接著在項目預設的MyFramework.h里面加入MyClass.h檔的參考,讓后續使用的開發人員只要import單一個MyFramework.h檔,就可以引用到Framework里Public出來的.h檔。

  • MyFramework.h

    #import <UIKit/UIKit.h>//! Project version number for MyFramework. FOUNDATION_EXPORT double MyFrameworkVersionNumber;//! Project version string for MyFramework. FOUNDATION_EXPORT const unsigned char MyFrameworkVersionString[];// In this header, you should import all the public headers of your framework using statements like #import <MyFramework/PublicHeader.h> #import "MyClass.h"

最后一個設定步驟,是要加入一段Run Script,用來將「仿真器版本Framework」、「實機版本Framework」,整合輸出為單一Framework。

  • 參考數據

    • 用lipo合并模擬器Framework與真機Framework - IOS開發學習博客
  • Run Script

    if [ "${ACTION}" = "build" ] then INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.frameworkDEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.frameworkSIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.frameworkif [ -d "${INSTALL_DIR}" ] then rm -rf "${INSTALL_DIR}" fimkdir -p "${INSTALL_DIR}"cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/" #ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"#open "${DEVICE_DIR}" open "${SRCROOT}/Products" fi
  • Setting

完成設定步驟后,分別Build兩個不同版本的Framework:仿真器版本、實機版本。接著,設定在建置作業中的Run Script,就會將兩個版本的Framework,整合輸出為單一的MyFramework.framework

  • 仿真器版本

  • 實機版本

  • 產出MyFramework.framework

使用

接著開啟XCode來建立一個新項目:「MyAPP」,專案類型選擇為Single View Application。這個項目用來說明,如何使用封裝為Framework的程序代碼。

  • 專案類型

再來將Framework復制一份,放到MyAPP的專案文件夾內。XCode編譯的時候,會去這個路徑底下找尋Framework。

  • Framework檔案路徑

回到XCode的項目屬性頁面,把Framework的參考加入到項目里。

  • 加入參考

接著在項目預設的ViewController.m文件里面,加入下列程序來使用Framework里面所封裝的程序代碼。

  • 加入Framework參考

    #import <MyFramework/MyFramework.h>
  • 使用Framework中的程序代碼

    // test MyClass* x = [[MyClass alloc] init]; NSString* message = [x getMessage];
  • 完整的ViewController.m

    #import <MyFramework/MyFramework.h> #import "ViewController.h"@implementation ViewController- (void)viewDidLoad {// super[super viewDidLoad];// testMyClass* x = [[MyClass alloc] init];NSString* message = [x getMessage];// alert[[[UIAlertView alloc] initWithTitle:nil message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show]; }@end

最后,執行MyAPP。可以在執行畫面上,看到一個Alert窗口顯示從Framework取得的訊息內容,這也就完成了使用Framework的相關開發步驟。

  • 顯示回傳訊息

后記

XCode編譯的時候,會去特定路徑底下搜尋Framework來加入編譯。如果需要增加或修改參考路徑,可以透過調整Build Setting里的Framework Search Paths參數來變更。

  • Framework Search Paths

范例下載

范例程序代碼:下載地址

轉載于:https://www.cnblogs.com/clark159/p/4963685.html

總結

以上是生活随笔為你收集整理的[iOS] 建立与使用Framework的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。