黑马程序员——Foundation学习总结7-11
来源:互联网 发布:行知中学官网 编辑:程序博客网 时间:2024/04/28 09:58
---------------- ASP.Net+Unity开发、.Net培训、期待与您交流!----------------
《5 8.Foundation7-NSArray的创建和遍历》学习总结
1、NSArray用来存储对象的有序列表,它是不可变的。
2、NSArray不能存储C语言中的基本数据类型。
3、创建一个空的数组。
NSArray *array = [NSArray array];4、创建一个有1个元素的数组。
NSArray *array = [NSArray arrayWithObject:@"123"];5、创建一个有多个元素的数组。
NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];6、containsObject:判断数组是否包含了某个元素。
7、lastObject:获取数组的最后一个元素。
8、objectAtIndex:获取数组的某个元素。
9、indexOfObject:获取元素在数组中的位置。
10、当把一个对象添加进数组中时,这个对象的计数器会加1,也就是说数组会对它做一次retain操作。
11、数组被销毁的时候,会对内部的所有元素做一次release操作。
12、将两个对象添加进数组中。
NSArray *array = [[NSArray alloc] initWithObjects:stu1, stu2, nil];13、将数组里面的所有对象都调用test方法。
[array makeObjectsPerformSelector:@selector(test)];14、遍历数组方法1。
Student *stu1 = [Student student]; NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil]; int count = array.count; for (int i = 0; i<count; i++) { id obj = [array objectAtIndex:i]; NSLog(@"%i-%@", i, obj); }
15、遍历数组方法2。
Student *stu1 = [Student student]; NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil]; // 快速遍历 int i =0; for (id obj in array) { NSLog(@"%i-%@", i, obj); i++; }
16、遍历数组方法3。
Student *stu1 = [Student student]; NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil]; [array enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"%i-%@", idx, obj); // 如果索引为1,就停止遍历 if (idx == 1) { // 利用指针修改外面BOOL变量的值 *stop = YES; } }];
17、遍历数组方法4。
Student *stu1 = [Student student]; NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil]; // 获取数组的迭代器 // NSEnumerator *enumerator = [array objectEnumerator]; // allObjects是取出没有被遍历过的对象 NSArray *array2 = [enumerator allObjects]; NSLog(@"array2:%@", array2); // 获取下一个需要遍历的元素 id obj = nil; while (obj = [enumerator nextObject]) { NSLog(@"obj=%@", obj); }
《5 9.Foundation8-NSArray的排序》学习总结
1、添加一个元素,返回一个新的NSArray。
- (NSArray *)arrayByAddingObject:(id)anObject;
2、添加otherArray的所有元素,返回一个新的NSArray。
- (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray;
3、截取range范围的数据元素。
- (NSArray *)subarrayWithRange:(NSRange)range;4、用separator作为拼接符将数组元素拼接成一个字符串。
- (NSString *)componentsJoinedByString:(NSString *)separator;
5、将一个NSArray持久化到文件中去。
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
6、数组排序1。
NSArray *array = [NSArray arrayWithObjects:@"2", @"3", @"1", @"4", nil]; // 返回一个排好序的数组,原来数组的元素顺序不会改变 // 指定元素的比较方法:compare: NSArray *array2 = [array sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"array2:%@", array2);
7、数组排序2。
Student *stu1 = [Student studentWithFirstname:@"MingJie" lastname:@"Li"]; Student *stu2 = [Student studentWithFirstname:@"LongHu" lastname:@"Huang"]; Student *stu3 = [Student studentWithFirstname:@"LianJie" lastname:@"Li"]; Student *stu4 = [Student studentWithFirstname:@"Jian" lastname:@"Xiao"]; NSArray *array = [NSArray arrayWithObjects:stu1,stu2,stu3, stu4, nil]; // 指定排序的比较方法 NSArray *array2 = [array sortedArrayUsingSelector:@selector(compareStudent:)]; NSLog(@"array2:%@", array2);
8、数组排序3。
Student *stu1 = [Student studentWithFirstname:@"MingJie" lastname:@"Li"]; Student *stu2 = [Student studentWithFirstname:@"LongHu" lastname:@"Huang"]; Student *stu3 = [Student studentWithFirstname:@"LianJie" lastname:@"Li"]; Student *stu4 = [Student studentWithFirstname:@"Jian" lastname:@"Xiao"]; NSArray *array = [NSArray arrayWithObjects:stu1,stu2,stu3, stu4, nil]; // 利用block进行排序 NSArray *array2 = [array sortedArrayUsingComparator: ^NSComparisonResult(Student *obj1, Student *obj2) { // 先按照姓排序 NSComparisonResult result = [obj1.lastname compare:obj2.lastname]; // 如果有相同的姓,就比较名字 if (result == NSOrderedSame) { result = [obj1.firstname compare:obj2.firstname]; } return result; }]; NSLog(@"array2:%@", array2);
9、数组排序4。
Student *stu1 = [Student studentWithFirstname:@"MingJie" lastname:@"Li" bookName:@"book1"]; Student *stu2 = [Student studentWithFirstname:@"LongHu" lastname:@"Huang" bookName:@"book2"]; Student *stu3 = [Student studentWithFirstname:@"LianJie" lastname:@"Li" bookName:@"book2"]; Student *stu4 = [Student studentWithFirstname:@"Jian" lastname:@"Xiao" bookName:@"book1"]; NSArray *array = [NSArray arrayWithObjects:stu1,stu2,stu3, stu4, nil]; // 1.先按照书名进行排序 // 这里的key写的是@property的名称 NSSortDescriptor *bookNameDesc = [NSSortDescriptor sortDescriptorWithKey:@"book.name" ascending:YES]; // 2.再按照姓进行排序 NSSortDescriptor *lastnameDesc = [NSSortDescriptor sortDescriptorWithKey:@"lastname" ascending:YES]; // 3.再按照名进行排序 NSSortDescriptor *firstnameDesc = [NSSortDescriptor sortDescriptorWithKey:@"firstname" ascending:YES]; // 按顺序添加排序描述器 NSArray *descs = [NSArray arrayWithObjects:bookNameDesc, lastnameDesc, firstnameDesc, nil]; NSArray *array2 = [array sortedArrayUsingDescriptors:descs]; NSLog(@"array2:%@", array2);
《6 0.Foundation9-NSMutableArray》学习总结
1、NSMutableArray是可变的NSArray,是NSArray的子类,可以随意的添加或删除元素。
2、NSMutableArray的初始化。
+ (instancetype)arrayWithCapacity:(NSUInteger)numItems;
- (id)initWithCapacity:(NSUInteger)numItems;3、NSMutableArray可以使用父类NSArray的方法。
4、当一个元素被加到集合中时,会执行一次retain操作。
5、当一个元素从集合中移除时,会执行一次release操作。
6、当集合被销毁时,集合里面的所有元素都会执行一次release操作。
7、设置集合元素。
- (void)setArray:(NSArray *)otherArray;8、添加一个元素。
- (void)addObject:(id)object;9、添加otherArray的全部元素到集合中。
- (void)addObjectsFromArray:(NSArray *)otherArray;
10、在index位置插入一个元素。
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
11、在indexes指定的位置分别插入objects中的元素。
- (void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes;12、删除最后一个元素。
- (void)removeLastObject;
13、删除所有的元素。
- (void)removeAllObjects;
14、删除index位置的元素。
- (void)removeObjectAtIndex:(NSUInteger)index;
15、删除indexes位置的所有元素。
- (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
16、删除特定的元素。
- (void)removeObject:(id)object;
17、在range范围内查找特定的元素进行删除。
- (void)removeObject:(id)anObject inRange:(NSRange)range;
18、删除同时存在于otherArray和当前集合的所有元素。
- (void)removeObjectsInArray:(NSArray *)otherArray;
19、删除range范围内的所有元素。
- (void)removeObjectsInRange:(NSRange)range;20、用anObject替换index位置对应的元素。
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
21、用objects中的元素分别替换indexes对应位置的元素。
- (void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects;
22、用otherArray中的otherRange范围内的元素替换当前集合range范围内的元素。
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange;
23、用otherArray中的元素替换当前集合range范围内的元素。
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray;
24、交换idx1和idx2位置的元素。
- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
《6 1.Foundation10-NSDictonary》学习总结
1、NSDictonary作用是通过唯一的key找到对应的value,是不可变的。
2、返回字典的key数。
- (NSUInteger)count;
3、比较两个字典。
- (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary;
4、将一个NSDictonary持久化到文件中去。
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;5、返回所有的key。
- (NSArray *)allKeys;
6、返回anObject元素对应的所有key。
- (NSArray *)allKeysForObject:(id)anObject;
7、返回所有的value。
- (NSArray *)allValues;
8、根据key返回对应的value。
- (id)objectForKey:(id)key;
9、返回keys对应的所有value,如果没有对应的value,用marker代替。
- (NSArray *)objectsForKeys:(NSArray *)keys notFoundMarker:(id)marker;10、遍历字典1。
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"v1", @"k1", @"v2", @"k2", @"v3", @"k3", nil]; // 遍历字典的所有key for (id key in dict) { id value = [dict objectForKey:key]; NSLog(@"%@=%@", key, value);
11、遍历字典2。
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"v1", @"k1", @"v2", @"k2", @"v3", @"k3", nil]; // key迭代器 NSEnumerator *enumer = [dict keyEnumerator]; id key = nil; while ( key = [enumer nextObject]) { id value = [dict objectForKey:key]; NSLog(@"%@=%@", key, value); }
12、遍历字典3。
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"v1", @"k1", @"v2", @"k2", @"v3", @"k3", nil]; [dict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) { NSLog(@"%@=%@", key, obj); }];
《6 2.Foundation11-NSMutableDictonary》学习总结
1、NSMutableDictionary是可变的NSDictonary,是NSDictonary的子类。
2、NSMutableDictionary可以使用父类NSDictonary的方法。
3、NSMutableDictionary的初始化。
+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;
- (id)initWithCapacity:(NSUInteger)numItems;4、设置当前集合的元素。
- (void)setDictionary:(NSDictionary *)otherDictionary;
5、添加一个键值对。
- (void)setObject:(id)anObject forKey:(id)aKey;
6、添加otherDictionary的所有元素到当前集合中。
- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;
7、删除所有元素。
- (void)removeAllObjects;
8、删除akey对应的值。
- (void)removeObjectForKey:(id)aKey;
9、删除keyArray中所有对应的值。
- (void)removeObjectsForKeys:(NSArray *)keyArray;
---------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------
----------------详细请查看:www.itheima.com-----------------------------------------
0 0
- 黑马程序员——Foundation学习总结7-11
- 黑马程序员——Foundation学习总结1-6
- 黑马程序员——Foundation学习总结12-16
- 黑马程序员—foundation框架总结
- 黑马程序员——Foundation学习—-----NSArray和NSMutableArray
- 黑马程序员——Foundation学习—-----NSDictionary和NSMutableDictionary
- 黑马程序员——Foundation学习之NSString\NSMutableString
- 黑马程序员——Foundation学习之NSArray\NSMutableArray
- 黑马程序员——Foundation学习之NSSet\NSMutableSet
- 黑马程序员——Foundation学习之NSDictionary\NSMutableDictionary
- 黑马程序员——IOS学习笔记(Foundation框架(一))
- 黑马程序员——IOS学习笔记(Foundation框架(二))
- 黑马程序员--Foundation框架总结
- 黑马程序员-Foundation-学习笔记
- 黑马程序员——[Foundation]Foundation框架01
- 黑马程序员————Foundation
- 黑马程序员——Foundation(二)
- 黑马程序员——Foundation框架
- CI框架自带的验证工具及汉化
- 第十二章 存储类,链接和内存管理 总结 1406015
- 利用BADI WORKORDER_INFOSYSTEM在COOIS中添加自定义列办事处
- postgres 之 initdb 源码分析 一
- 多边形面积计算的演变推导过程
- 黑马程序员——Foundation学习总结7-11
- 嵌入式编程进化史
- ACdream OJ 1099 瑶瑶的第K大 --分治+IO优化 - whatbeg
- 【足迹C++primer】表达式求值
- Java环境变量配置&解决版本不一致问题
- Android开发之自定义控件--ViewPager
- 程序员如何保持持续的进步
- 基于rman的坏块恢复
- OPENSTACK在RHEL7安装;admin创建虚拟机模板供demo使用