iOS使用靜態連結庫(基礎篇)

來源:互聯網
上載者:User
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系統下用文字編輯器開啟,會出現部門不正常字元,特別是程式中一些雙引號,若編譯出錯,請更改相關雙引號。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.