1、
有NSDictionary *dict123 = @{@"中文":@[@{@"123":@"123"}],
@"英文":@[@{@"123":@"123"},@{@"123":@"123"}],
@"法文":@[@{@"123":@"123"},@{@"123":@"123"}]};
NSArray *keyArrays = dict123.allKeys;
获得字典中的所有key值。
因为服务器,可能传给你的是一个字符串,但是字符串是字典的形式,那么就要先把字符串转化成字典,然后取值。
/*!
* @brief 把格式化的JSON格式的字符串转换成字典
* @param jsonString JSON格式的字符串
* @return 返回字典
*/
+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString {
if
(jsonString == nil) {
return
nil;
}
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&err];
if
(err) {
NSLog(@
"json解析失败:%@"
,err);
return
nil;
}
return
dic;
}
2、
UINavigationController应该很多项目中都有用,push和pop是最常用的,但不能满足所有需求,如果要删除中间某个VC,或者重构UINavigationController维护的整个VCs的栈,setViewControllers就可以派上用场。
1
2
3
4
5
6
7
|
NSMutableArray * viewControllers = [self.navigationController.viewControllers mutableCopy];
for
(UIViewController *viewController in [viewControllers reverseObjectEnumerator]) {
NSString *tempName = NSStringFromClass([viewController
class
]);
if
([tempName isEqualToString:viewControllerName]) {
[viewControllers removeObject:viewController];
}
[self.navigationController setViewControllers:viewControllers animated:YES];
|
可以任意增删改整个VCs栈的其中一个,满足我们的跳转需求,UITabBarController也有同样的方法
该方法支持iOS3.0+,放心使用。