您的位置:首页 > 移动开发 > IOS开发

苹果开发 笔记(65)遍历

2015-08-29 13:34 337 查看
看了面试题目,有时候发现越基础的东西越让人发现很多忽视的地方。例如@property 里面的几个属性,原子性和非原子性。copy 一般用在场合。这些都是考察的一些基础点。还有一些声明等等。数组的遍历,字典的搜索等。

这几天比较颓废,现在也看一下循环。简单一下练习找回一些感觉。

我将CFAbsoluteTimeGetCurrent 变成As3的getTimer 这样也好利于自己理解获取当前的时间点,算出一些运算的时间。

很奇怪的是,IOS 里面的 for in 的效率是非常高,在As3 里面 for in 效率是最低,所以说不同的语言环境效果不是一样,这是很依赖环境。所以对过去认识进行一点改变才会获得一些新认识。

NSArray 里面 enumerateObjectsUsingBlock block 方法 也可以作为遍历使用。

[code]#import <Foundation/Foundation.h>

#define  getTimer() CFAbsoluteTimeGetCurrent()

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        double startTime =  getTimer();

        NSArray *array  = @[@"one" ,@"twon",@"three"];
        for (NSString *str in array )
        {
            NSLog(@"输出结果%@",str);
        }

        [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

            NSLog(@"---------%@",obj);

        }];

        NSDictionary *dictionary  = @{@"one":@100,@"two":@200,@"three":@300};

        [dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

             NSLog(@"---------%@:%@",key,obj);
        }];
           double endTime =  getTimer();

        NSLog(@"执行时间:%f",endTime - startTime);
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: