类名:MStockTool
.h文件:
@interface MStockTool :NSObject{
}
/**
* 得到Document路径
*/
+(NSString*)getDocumentPath;
/**
* 保存系统配制
*/
+(void)SaveSysConfig;
@end
.m文件
+(NSString*)getDocumentPath{
//Creates a list of directory search paths.--创建搜索路径目录列表。
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
//NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
//常量NSDocumentDirectory表面我们正在查找的Document目录路径,
//常量NSUserDomainmask表明我们希望将搜索限制于我们应用程序的沙盒中。
return [pathsobjectAtIndex:0];
//这样我们就可以得到该数组的第一值,也仅此一值,因为每一个应用程序只有一个Document文件夹。
}
//保存所有系统变量的方法
+(void)SaveSysConfig{
@synchronized(self) {
NSString *err = nil;
NSString *file = [[MStockToolgetDocumentPath ]stringByAppendingPathComponent:CONFIG_FILE_PATH];
//
NSMutableDictionary *saveConfig = [[NSMutableDictionaryalloc] init];
//
id key;
NSEnumerator *enumerator = [sysConfigkeyEnumerator];
while (key = [enumerator nextObject]) {
if([[keysubstringToIndex:1]isEqualToString:@"_"] )
{
[saveConfigsetObject:[sysConfigvalueForKey:key] forKey:key];
//NSLog(@"saveconfigkey=%@,%@",key,[saveConfig valueForKey:key]);
}
}
//NSLog(saveConfig);
//
NSData *pd = [NSPropertyListSerializationdataFromPropertyList:saveConfig format:NSPropertyListXMLFormat_v1_0errorDescription:&err];
if(nil == err)
[pdwriteToFile:file atomically:YES];
[saveConfigrelease];
}
}
系统变量 用来判断是否是第一次运行程序 它只是存东西的 但是需要有一个唯一表示符
NSMutableDictionary *sysConfig;
其实可以定义一个继承自NSMutableDictionary的类,写一个单例方法,整个工程中只有一份拷贝,这样的话,就可以随时随地用它来保存变量了。如下所示:
SaveConfig.h
#import <Foundation/Foundation.h>
@interface SaveConfig :NSMutableDictionary
+ (id)ShareConfig;
@end
SaveConfig.m
#import "SaveConfig.h"
@implementation SaveConfig
+ (id)ShareConfig
{
static SaveConfig *iSaveConfig =nil;
staticdispatch_once_t once;
if (iSaveConfig == nil) {
dispatch_once(once, ^{
iSaveConfig = [[SaveConfigalloc] init];
});
}
return iSaveConfig;
}
@end
单例的用法:
SaveConfig *save = [SaveConfigShareConfig];
[save setObject:XXXX forKey:@"XXXX"];
这样在整个工程中都使用一个SaveConfig类的对象进行变量的存储,并且可以用[SaveConfig ShareConfig]随时获取到它。