iOS本地存储--c语言方式例子
来源:互联网 发布:java web开发必备工具 编辑:程序博客网 时间:2024/06/16 10:09
原文网址:http://blog.csdn.net/nicktang/article/details/6863122
背景,iOS其实和Mac的系统是一脉相承,而它们其实是unix的内核,所以你在unix(linux)上面可以使用的api,在这里也是可以用的。
很多时候,我们需要保存一些信息在本地,iOS SDK提供了很好的接口支持,但是有时候,我们可能需要使用标准C的方式存取文件,下面就是这样的方式,我这里就不多解释了,
//这个函数得到存取的路径。
- (char*)makePreferencesFilename
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writablePath = [documentsDirectory stringByAppendingPathComponent:@"backup.dat"];
int len = [writablePath length];
char *filename = (char*)malloc(sizeof(char) * (len + 1));
[writablePath getCString:filename maxLength:len + 1 encoding:[NSString defaultCStringEncoding]];
return filename;
}
- (void)saveOptions
{
char *path = [self makePreferencesFilename];
FILE *fp = fopen(path,"wt");
char sTemp [100];
//snprintf(sTemp, [loginName length], "%s", [loginName UTF8String]);
fputs([loginName UTF8String], fp);
fputs("\n", fp);
if(bSavePassword) {
//snprintf(sTemp, [loginPassword length], "%s", [loginPassword UTF8String]);
fputs([loginPassword UTF8String], fp);
}
else {
fputs("", fp);
}
fputs("\n", fp);
//存其他的信息
fclose(fp);
free(path);
}
- (void)loadOptions
{
char *path = [self makePreferencesFilename];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *spath = [[NSString alloc] initWithFormat:@"%s", path];
BOOL fileExists = [fileManager fileExistsAtPath:spath];
if (!fileExists)
{
loginName =nil;
loginPassword =nil;
//初始化其他的信息。
free(path);
[spath release];
return;
}
char sTemp[100];
FILE *fp = fopen(path,"rt");
//fscanf(fp, "%s", sTemp);
fgets(sTemp, 100,fp);
int ilen = strlen(sTemp);
sTemp[ilen - 1] = 0;
loginName = [[NSString alloc] initWithFormat:@"%s",sTemp];
if([loginName isEqualToString:@"(null)"]) {
[loginName release];
loginName =nil;
}
if(sTemp[0] == 0){
[loginName release];
loginName =nil;
}
fgets(sTemp, 100,fp);
ilen = strlen(sTemp);
sTemp[ilen - 1] = 0;
loginPassword = [[NSString alloc] initWithFormat:@"%s",sTemp];
if([loginPassword isEqualToString:@"(null)"]) {
[loginPassword release];
loginPassword =nil;
}
if(sTemp[0] == 0){
[loginPassword release];
loginPassword =nil;
}
//读其他的信息
fclose(fp);
[spath release];
free(path);
}
- iOS本地存储--c语言方式例子
- iOS本地存储--c语言方式例子
- IOS-本地存储-NSUserDefaults
- iOS中几种本地存储的存储方式
- iOS本地数据存储的方式
- ios本地数据存储都有哪几种方式?
- iOS本地数据存储的方式
- IOS本地存储的四种方式
- c语言变量存储方式
- 本地例子存储
- IOS开发之路--C语言存储方式和作用域
- IOS开发系列--C语言之存储方式和作用域
- IOS开发系列--C语言之存储方式和作用域
- iOS开发系列--C语言之存储方式和作用域
- IOS开发系列--C语言之存储方式和作用域
- 黑马程序员——IOS学习笔记(C语言存储方式和变量作用域)
- iOS开发系列--C语言之存储方式和作用域
- iOS开发系列--C语言之存储方式和作用域
- 各种字符串Hash函数比较
- oracle设置归档模式 并设置归档存储格式
- IniFile.cs:C#来操作ini配置文件
- div 永远在页面底部
- 加入app应用
- iOS本地存储--c语言方式例子
- 跟踪用户状态
- Any $3 thousand Our Genome Assignment was initially believed to choose the cause grounds for most of
- SSE指令集
- 关于单链表的面试题概览
- Cls_Ini.cls:VB写的操作ini配置文件的类
- ajax在tomcat 上正常,部署到weblogic上就出现问题了,提示下载action路径
- 寻找属于自己的爱情
- opencv 取整数,四舍五入,向上取整,向下取整