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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值