微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS使用静态链接库(基础篇)

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.hEncrypt.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系统下用文本编辑器打开,会出现部门不正常字符,特别是程序中一些双引号,若编译出错,请更改相关双引号。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐