SCMapCatch
SCMapCatch 是一個關(guān)于 NSUserDefaults , NSDictionary,NSMutableDictionary的輕量封裝.
安裝
手動
SCMapCatch 下載demo項目,將SCMapCatch文件夾copy添加到項目中
CocoaPod
在profile中添加
pod 'SCMapCatch'
終端切換到項目目錄,執(zhí)行
pod install
介紹
不知道我是特例還是大家都會遇到以下的幾種情況:
字典object的獲取
這里說的當(dāng)然不是簡單的objectForKey:,往往我會遇到,需要在一個多層嵌套的字典組成的樹狀結(jié)構(gòu)中,獲取得到特定的一個object
{
1 = {
b = {
5 = 6;
};
};
};
NSUserDefault的分用戶(模塊)設(shè)置,以及object獲取
NSUserDefault,作用就不多說,隨便舉個例子,記住密碼,單個用戶當(dāng)然可以很簡單的實現(xiàn),但是我們在允許記住多個用戶的記住密碼的情況下,又符合管理規(guī)范,我們往往需要把記住密碼看作一個小模塊并獨立出一個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的分用戶(模塊)設(shè)置,以及object獲取
設(shè)置
//二選一
[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:方法的調(diào)用
- 所過路徑必須為NSDictionary或其子類
- 所過路徑,遇到了空路徑則會被創(chuàng)建
- 當(dāng)object為nil時,則末尾key會被remove
在NSUserDefault 和 字典 中 objectForKey: 方法的調(diào)用
- 非目標位置的所過路徑,一旦找不到或找到的object值不是字典或其子類,則返回nil
SCMapCatch
SCMapCatch , a simplified tool for NSUserDefaults , NSDictionary,NSMutableDictionary.
Install
Manually
SCMapCatch download the demo code , copy the SCMapCatch folder into your project.
CocoaPod
use
pod 'SCMapCatch'