遍历一个数组看谁快 参赛选手 ForLoop, For - in, enumerateObjectsUsingBlock这个三个方法: NSMutableArray *test = [NSMutableArray array]; for (int i = 0; i < 1000000; i ++) { [test addObject:@(i)]; } __block int sum = 0; double date_s = CFAbsoluteTimeGetCurrent(); for (i…
Adopted Protocols NSCoding encodeWithCoder: initWithCoder: NSCopying copyWithZone: NSMutableCopying mutableCopyWithZone: NSFastEnumeration countByEnumeratingWithState:objects:count: Tasks Creating an Array + array + arrayWithArray:   -- + arrayWithCo…
首先接上篇的要做一个NSEnumerator 类的延展阅读. 枚举(NSEnumerator) (1)依附于集合类(NSArray,NSSet,NSDictionary),没有用来创建实例的接口. (2)NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项 (3)对可变数组进行枚举操作时,不能通过添加或删除对象这种类方式来改变数组容器. 遍历数组每个索引处的对象,你可以编写一个0到[array count]的循环,而N…
1. ForLoop, For - in, enumerateObjects这个三个方法的区别: 遍历一个数组用For-in最快. 通过Value查询index的时候, 面对大量的数组推荐使用 enumerateObjectsWithOptions的并行方法. 遍历字典类型的时候, enumerateKeysAndObjectsUsingBlock效率最高 1.1遍历数组 NSMutableArray *test = [NSMutableArray array]; ; i < ; i ++) {…
数组:可重复,有序 不可变数组 创建数组 //array开头的方法是类方法,init开头的是实例方法 //NSArray* arr=[[NSArray alloc]initWithObjects:@"",@"",@"",nil]; NSArray *arr=[NSArray arrayWithObjects:@"",@"",@"",nil]; NSArray *arr=@[@"…
第一,如何确定一个方法方法名称 删除减号,加,删除返回值,删除参数类型,删除参数,剩下的就是的方法名 秒,id,能够用assign,copy,retain,依据须要使用 第三,autorelease 在什么时候释放? 在碰到autoreleasepool的时候释放(能够把好几个同样的变量放几个不同的池里) 第四,协议的方法默认是@required 第五,字典集合的特点? 字典是以键值对形式的保存元素 仅仅能存储对象,不能存储基本数据类型 第六,怎样定义一个类? 类的接口部分包括实例变量,属性,和…
转自:http://blog.csdn.net/likandmydeer/article/details/7939749 一.简介 集合(set)是一组单值对象,它可以是固定的(NSSet).也可以是可变的(NSMutableSet).集合可以比较.计算交集.并集,可变集合还可以有查找.添加.删除. 二.常用方法 #import <Foundation/Foundation.h> int main (int argc, char *argv[]) { NSAutoreleasePool*poo…
OC至 NSArray它提供了一个方便的遍历block,以下具体说明 第一.enumerateObjectsUsingBlock NSArray *array=@[@"aa",@"bb",@"cc",@"dd",@"ee",@"ff",@"gg"]; [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx,…
enumerateObjectsUsingBlock VS for(... in ...) for(... in ...)用起来非常方便.简洁,同时enumerateObjectsUsingBlock: 也有很多新特性: 通常enumerateObjectsUsingBlock: 和 (for(... in ...)在效率上基本一致,有时会快些.主要是因为它们都是基于 NSFastEnumeration 实现的. 快速迭代在处理的过程中需要多一次转换,当然也会消耗掉一些时间. 基于Block的迭…
for VS for(... in ...) for 的应用范围广基本可以NSArray.NSArray以及C语言的数组等,而for(... in ...)仅限于NSArray.NSArray等 for(... in ...) 更简洁.效率更高 测试代码: 10^7 的数组,时间单位 秒,精确度 毫秒 NSMutableArray *test = [NSMutableArray array]; ; i < ; i++) { [test addObject:@(i)]; } ; double da…