SCMapCatch 0.3.1

SCMapCatch 0.3.1

Csh089089维护。



SCMapCatch

SCMapCatch 是关于 NSUserDefaults, NSDictionary, NSMutableDictionary 的轻量级封装。

安装

手动

下载 SCMapCatch 的 demo 项目,将 SCMapCatch 文件夹复制并添加到项目中。

CocoaPod

在 profile 中添加

pod 'SCMapCatch'

切换到项目目录的终端,执行

pod install

介绍

不知道我是特例还是大家都会遇到以下的几种情况:

字典 object 的获取

这里说的当然不是简单的 objectForKey:,往往我会遇到,需要在一个多层嵌套的字典组成的树状结构中,获取得到特定的一个 object

{
    1 =     {
        b =         {
            5 = 6;
        };
    };
};
NSUserDefault的分用户(模块)设置,以及object获取

NSUserDefault的作用就不多说了,随便举个例子,记住密码,单个用户当然可以很简单的实现,但是我们在允许记住多个用户的记住密码的情况下,又符合管理规范,我们往往需要把记住密码看作一个小模块独立出一个key放在NSUserDefault的第一层(如果你说可以直接存放,则此问题可忽略)。比如

{
    pwKeeping =     {
        user_a =    123456,
        user_b =    654321
    };
};

那么这样保存方式极其繁琐。

仅需要一句代码

字典object的获取
NSDictionary *dic = @{@"1":@{@"b":@{@"5":@6}}};
//用特定的符号来划分路径的等级
id catchResult = [dic mc_objectForKey:@"1.b.5" separatedString:@"."];
NSUserDefault的分用户(模块)设置,以及object获取
设置
//二选一
[NSUserDefaults mc_setObject:@"123456" forKey:@[@"pwKeeping",@"user_a"] separatedString:nil];
[NSUserDefaults mc_setObject:@"654321" forKey:[@"pwKeeping"stringByAppendingPathComponent:@"user_a"] separatedString:@"/"];
获取
NSString *getting_result = [NSUserDefaults mc_objectForKey:@"your_root/m/c" separatedString:@"/"]

说明

在NSUserDefault 中mc_setobject: forKey:方法的调用
  • 传入的路径必须是NSDictionary或其子类
  • 传入的路径,如果路径为空则会被创建
  • 当object为nil时,将会移除末尾的key
在NSUserDefault 和 字典 中 objectForKey: 方法的调用
  • 非目标位置的传入路径,如果找不到或找到的object值不是字典或其子类,则返回nil

SCMapCatch

SCMapCatch,一个简化版的NSUserDefaults、NSDictionary和NSMutableDictionary的工具。

安装

#### 手动从SCMapCatch下载示例代码,将SCMapCatch文件夹复制到您的项目中。

CocoaPod

工具栏

pod 'SCMapCatch'