iOS使用静态链接库(基础篇)
2011-03-15 10:28
381 查看
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系统下用文本编辑器打开,会出现部门不正常字符,特别是程序中一些双引号,若编译出错,请更改相关双引号。
相关文章推荐
- iOS使用静态链接库(基础篇)
- iOS 基础篇12- 定时器的使用
- iOS 基础篇14- KVO的使用
- IOS开发基础篇--NSNotificationCenter使用小结
- 深入浅出理解iOS经常使用的正則表達式—基础篇[Foundation]
- IOS开发基础篇之UIAlertView的使用
- IOS开发基础篇--NSNotificationCenter使用小结
- iOS 基础篇13- 通知的使用
- iOS block介绍和使用技巧(基础篇)
- 【iOS-cocos2d-X 游戏开发之八】使用Lua脚本进行游戏开发(基础篇) 推荐
- ios 之 UIStepper的使用(ios 5.0之后)
- iOS-- 使用正则表达式验证数据
- iOS中UISearchBar(搜索框)使用总结
- iOS之类别(category)在静态库中不能使用的问题
- iOS 图片上传使用base64或者二进制流上传头像
- VC.Net中创建与使用静态链接库(lib)和动态链接库(dll),以及它们的区别
- IOS开发学习笔记(十九)——Core Data使用(上篇)
- ios 使用Safari浏览器跳转打开、唤醒app
- iOS textView的使用总结
- iOS开发解决使用融云sdk融云头像问题第二版 (终结了 完美)