黑马程序员——Foundation框架字典、集合类、反射
2015-08-13 19:03
656 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
集合类的总结:
NSArray ArrayList
NSSet HashSet
NSDictionary HashMap
1.NSArray\NSMutableArray
有序
快速创建(不可变):@[obj1,obj2,obj3]
快速访问元素:数组名[i]
2.NSDictionary\NSMutableDictionary
无序
快速创建(不可变):@{key1:value1,key2:value2}
快速访问元素:字典名[key]
3.NSSet\NSMutableSet
无序
反射
集合类的总结:
NSArray ArrayList
NSSet HashSet
NSDictionary HashMap
1.NSArray\NSMutableArray
有序
快速创建(不可变):@[obj1,obj2,obj3]
快速访问元素:数组名[i]
2.NSDictionary\NSMutableDictionary
无序
快速创建(不可变):@{key1:value1,key2:value2}
快速访问元素:字典名[key]
3.NSSet\NSMutableSet
无序
#import int main() { NSArray *persons = @[ @{@"name":@"jack",@"qq":@"123",@"book":@[@"book1",@"book2"]}, @{@"name":@"rose",@"qq":@"1234"}, @{@"name":@"jim",@"qq":@"12345"} ]; //NSDictionary *jim = persons[2]; //取出一本书 NSString *book = persons[0][@"book"][1]; //取出书的数组 NSArray *books = persons[0][@"book"]; NSLog(@"%@",books); //先取出1位置对应的字典 //再取出字典种qq这个key对应的数据 NSLog(@"%@",persons[1][@"qq"]); return 0; } void use4(){ //字典是无序的 //字典不允许有相同的key,但允许有相同的value(Object) NSDictionary *dict = @{ @"address" : @"beijing", @"name" : @"jack", @"qq" : @"1231231"}; [dict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOLBOOL *stop){ NSLog(@"%@-%@",key,obj); //若想遍历一次就停止: *stop = YES; } ]; } void use3(){ } void use2(){ NSMutableDictionary *dict = [NSMutableDictionary dictionary]; //添加键值对 [dict setObject:@"jack" forKey:@"name"]; [dict setObject:@"beijing" forKey:@"address"]; [dict setObject:@"rose" forKey:@"name"];//当再次给key赋值,会覆盖先前的值 //删除 //[dict removeObjectForKey(id)]; NSString *str = dict[@"name"]; NSLog(@"%@",str); //NSLog(@"%@",dict);//字典打印方式 //NSLog(@"%@",@[@"jack",@"rose"]);//数组打印方式 } void use(){ //第一种 //NSDictionary *dict=[NSDictionary dictionaryWithObject:@"jack" forKey:@"name"]; //第二种 //第三种 NSDictionary *dict = @{@"name" : @"jack",@"address" : @"beijing:"}; //id obj = [dict objectForKey:@"name"]; id obj = dict[@"name"]; NSLog(@"%@",obj); NSLog(@"%ld",dict.count);//返回键值对的个数 }
反射
//类名的反射: NSString *str = @"Person"; Class class = NSClassFromString(str); Person *person = [[class alloc] init]; //Class变成字符串 NSString *name = NSStringFromClass([Person class]); //方法的反射 NSString *method = @"test"; SEL selector = NSSelectorFromString(method); [person performSelector:selector]; //将SEL转换为字符串 NSString *selectorName = NSStringFromSe
相关文章推荐
- 黑马程序员——Foundation框架结构体、字符串、数组
- 黑马程序员--Java集合框架(2)
- 黑马程序员--java技术blog---第十篇:正则表达式
- 一个应届毕业生的求职回忆录(留给自己)
- 程序员日记我们需要有条理的生活
- 【面试的坑】行内元素是否可以设置宽高
- android 面试总结
- 【黑马程序员】内存管理基础
- 数据库 SQL面试题
- 黑马程序员—————Java基础----继承、多态、抽象、接口
- 一道关于Java中Integer缓冲区的面试题
- 黑马程序员--Java集合框架(1)
- 作为码农,我们为什么要写作
- 职场4个高效好习惯
- 面试宝典14.5.5
- 黑马程序员——java复习总结——字符串
- 黑马程序员——OC笔记之Foundation框架上
- 如何在面试中发现优秀程序员
- 黑马程序员--Java基础--多线程(一)
- 我们需要更多的程序员,而不是更好的工具