IOS 入門開發之使用XCODE4製作靜態庫詳解
雨松MOMO原創文章如轉載,請註明:轉載至我的獨立網域名稱部落格雨松MOMO程式研究院
,原文地址:http://www.xuanyusong.com/archives/606
注意:首先確保你的XCODE4使用IOS5,否則請下載IOS5在繼續閱讀。
IOS程式是由Objective-c語言構成,而是Objective-c語言中每一個類又分成 .h .m 檔案。靜態庫可以將這些程式的類封裝成一個.a檔案,第三方應用程式只需要拿到這個.a檔案和代碼對應的.h檔案即可使用靜態庫中封裝的方法。總的來說IOS靜態庫適合去製作第三方提供的SDK,廢話不多說了我們直接進正題。
首先開啟Xcode4建立一個靜態庫工程,如選擇Framework&Library ->Cocoa Touch Static Library (建立靜態庫),點擊右下角按鈕“next”繼續完成建立。
工程建立完畢後,我們開始編寫代碼。我們建立一個UIView類用來顯示一張圖片,並且點擊該視圖後開啟一個網址。
建立視圖類的.h檔案
#import <UIKit/UIKit.h>@interface MyView : UIView@end
建立視圖類的.m檔案顯示的圖片資源為通過URL下載後Google的LOGO,點擊該LOGO視圖後程式將開啟百度的首頁。
#import "MyView.h"@implementation MyView- (id)initWithFrame:(CGRect)frame{ //初始化視圖位置 self = [super initWithFrame:frame]; if (self) { } return self;}- (void)drawRect:(CGRect)rect{ //這裡建立一個圖片視圖 UIImage *image=[[UIImage alloc]initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com.hk/intl/zh-CN/images/logo_cn.png"]]]; [image drawInRect:CGRectMake(0, 0,self.frame.size.width , self.frame.size.height)]; [image release];}-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ //點擊視圖後開啟網頁 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];}@end
到這一步靜態庫中的代碼我們已經寫完,現在我們開始製作靜態庫。靜態庫的製作方法可分為兩種:第一種為在真機上使用的靜態庫,第二種為在模擬器中使用的靜態庫。這兩種方法製作起來有點小區別,請大家一定看好了,別眨眼睛喔,我們開始從模擬器入手。
,先選擇模擬器iPhone 5.0 Simulator,如果你的XCODE4不是IOS5版本那麼你將沒有這個選項,然後Build工程,構建工程完畢後libSDKLib.a靜態庫檔案遍產生了出來, 選擇該檔案滑鼠右鍵找到它。
找到檔案以後,預設為Debug-iphoneos / libsdklib.a ,但是這個檔案是不能在模擬器中使用的,並且它也不能在真機中使用。你需要選擇下面Debug-iphoneosimulator / libsdklib.a這個檔案,將libSDKLib.a與對應MyView.h標頭檔拖拽入使用它的工程當中。
接下來建立一個普通的IOS工程,先選擇模擬器運行 iPhone5.0 Simulator ,然後將libSDKLib.a 與MyView.h拖拽添加至程式當中即可。
運行工程即可看到效果,本例中通過URL載入了一張Google的LOGO,觸摸點擊該視圖後開啟百度的首頁。
調用靜態庫的方法如下:
#import "ViewController.h"#import "MyView.h"@implementation ViewController- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use.}#pragma mark - View lifecycle- (void)viewDidLoad{ [super viewDidLoad]; //建立靜態程式庫檢視 MyView *myView = [[MyView alloc] initWithFrame: CGRectMake(0, 0, 120, 100)]; //將靜態程式庫檢視添加至視窗當中 [self.view addSubview:myView]; [myView release];}- (void)viewDidUnload{ [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil;}@end
OK ,到這一步我們已經將靜態庫順利的應用在模擬器當中,下面我們學習如何將靜態庫應用在真機當中。我們再次回到製作靜態庫的工程當中,開啟工程後編譯環境選擇IOS Device,然後構建構成即可完成。
使用滑鼠右鍵找到libSDKlib.a,這時候Debug-iphoneos / libSDKlib.a 就是可以在真機上編輯的靜態庫。
最後將libSDKLib.a 與MyView.h拖拽添加至程式當中,串連上真機運行工程即可在真機上看到效果了。值得注意的是模擬器和真機用的libSDKLib.a必需要嚴格的區分開,否則程式會報錯。
最後歡迎各位盆友可以和MOMO一起討論IOS軟體開發,從今天開始繼續維護部落格,你懂的,哇哢哢~~如果你覺得看得不清楚,MOMO附帶上本章的源碼下載,希望大家可以一起學習 哈哈~。哇哢哢~ MOMO願和 大家好好學習,大家一起進步哈~!!!
:http://www.xuanyusong.com/archives/606