1、開發iOS系統下靜態連結庫
開啟XCode建立一個項目,選擇Library下的“Cocoa
Touch Static Library”並命名為“EncryptLibrary”。這個建立的靜態庫項目下除了“EncryptLibrary_Prefix.pch”外沒有任何程式檔案,在Classes檔案夾上點右鍵選擇“New
File…”,然後在“Cocoa Touch Class”下選擇“Objective-C class”,將源檔案命名為“Encrypt.m”,同時選擇產生Encrypt.h標頭檔,可以看到在Classes目錄下產生了Encrypt.h和Encrypt.m檔案。接著在Encrypt.h標頭檔裡輸入以下內容:
#import <Foundation/Foundation.h>
@interface Encrypt: NSObject {
}
//對明文的使用者名稱和密碼進行編碼,返回編碼後的字串
+(NSString *)EncryptUserNameAndPassword:( NSString *)strUserName Password:( NSString *)strPassword;
@end
實現檔案Encrypt.m內容如下:
#import "Encrypt.h"
@implementation Encrypt
+ (NSString *)EncryptUserNameAndPassword:( NSString *)strUserName Password:( NSString *)strPassword
{
NSString *strEncrypted = [NSString stringWithFormat:@"UserName : %@ ,Password : %@",strUserName,strPassword];
Return strEncrypted;
}
@end
這裡提供了一個對明文的使用者名稱和密碼進行編碼的函數。至此,這個靜態函數庫已經編寫完畢,編譯這個程式會看到在Products目錄下產生了名為“libEncryptLibrary.a”的靜態庫檔案。
2、建立項目測試上面開發的靜態連結庫
建立一個“Window-based Application”項目並命名為“EncryptLibraryTest”,下面示範如何在這個新項目裡利用前面產生的靜態庫libEncryptLibrary.a檔案。
首先開啟Finder,將上面編譯產生的libEncryptLibrary.a檔案複製到EncryptLibraryTest.xcodeproj同級目錄,將Encrypt.h複製到EncryptLibraryTest.xcodeproj同級目錄的Classes檔案夾下面,在Xcode中右鍵點Frameworks->Add->Existing
Files..添加剛才複製的libEncryptLibrary.a檔案, 接下來使用靜態庫中的函數,如下:
#import <UIKit/UIKit.h>
#import "Encrypt.h"
@interface EncryptLibraryTestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
修改相應的實現檔案如下:
#import "EncryptLibraryTestAppDelegate.h"
@implementation EncryptLibraryTestAppDelegate
@synthesize window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after app launch.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
NSString *strUserName = @”caijinhui”;
NSString *strPassWord = @”password”;
NSString *strEncrypted =[ Encrypt EncryptUserNameAndPassword: strUserName Password:
strPassWord];
NSLog(@”%@”,strEncrypted);
return YES;
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end
編譯一下,順利通過,在Console輸出編碼後的字串。
提示:因為本文檔是用Office 2007寫的,所以在Mac系統下用文字編輯器開啟,會出現部門不正常字元,特別是程式中一些雙引號,若編譯出錯,請更改相關雙引號。