保存所有系统变量的方法

来源:互联网 发布:java数据类型取值范围 编辑:程序博客网 时间:2024/05/29 19:06

类名: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 = [enumeratornextObject]) {

            

            if([[keysubstringToIndex:1]isEqualToString:@"_"] )

            {

                [saveConfigsetObject:[sysConfigvalueForKey:key]forKey:key];

                    //NSLog(@"saveconfigkey=%@,%@",key,[saveConfig valueForKey:key]);

            }

            

        }

            //NSLog(saveConfig);

        

           //

        NSData *pd = [NSPropertyListSerializationdataFromPropertyList:saveConfigformat:NSPropertyListXMLFormat_v1_0errorDescription:&err];

       if(nil == err)

            [pdwriteToFile:fileatomically: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

{

   staticSaveConfig *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]随时获取到它。
0 0