zoukankan      html  css  js  c++  java
  • Foundation基础框架

    自己总结的

     1 //
     2 //  main.m
     3 //  01-结构体
     4 //
     5 //  Created by Mac-ZhangXiaoMeng on 14/12/29.
     6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13        
    14 //        一、NSRang的基本使用
    15 //        
    16 //        NSRange(location位置 length长度)        表示范围
    17 //        
    18 //        NSPointCGPoint                 表示坐标
    19 //        
    20 //        NSSizeCGSize                   表示UI元素的尺寸
    21 //        
    22 //        NSRectCGRect (CGPint CGSize)    表示一个UI元素的位置和尺寸
    23         
    24  
    25       /*   1   @"i love oc"  // love的范围
    26         
    27         NSRange r1 = {2, 4}; // 不用
    28         NSRange r2 = {.location = 2, .length = 4};// 不用
    29         
    30        NSRange r3 = NSMakeRange(2, 4); 掌握
    31         
    32        */
    33         
    34         
    35        /*  2
    36         NSString *str = @"i love oc";
    37         
    38         // 查找某个字符串在str中的范围
    39         // 如果找不到,length=0,  location=NSNotFound == -1
    40         NSRange range = [str rangeOfString:@"love"];
    41         NSLog(@"loc = %ld, length=%ld", range.location, range.length);
    42        */
    43         
    44         
    45 //    3.    CGPoint p1 = NSMakePoint(10, 10);
    46 //        NSPoint p2 = CGPointMake(20, 20);// 最常用
    47 //
    48         
    49 //    4.  NSSize s1 = NSMakeSize(100, 50);
    50  //       NSSize s2 = CGSizeMake(100, 50);
    51 //        CGSize s3 = NSMakeSize(200, 60);
    52         
    53  //   5.  CGRect r1 = CGRectMake(0, 0, 100, 50);
    54         
    55 //    6.  // 将结构体转为字符串
    56 //
    57  //       NSString *str = NSStringFromPoint(p1);
    58 //        
    59 //        NSString *str = NSStringFromSize(s3);
    60 //        
    61 //        NSString *str = NSStringFromRect(r1);
    62 //        
    63 //        NSLog(@"%@", str);
    64 //    7. 表示原点
    65         // CGPointZero == CGPointMake(0, 0)
    66        
    67 //    8.  比较两个点是否相同(x、y)
    68 //       BOOL b = CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));
    69         //CGRectEqualToRect(<#CGRect rect1#>, <#CGRect rect2#>)
    70         //CGSizeEqualToSize(<#CGSize size1#>, <#CGSize size2#>)
    71 
    72         //    9. 右边点是否在矩形块里   x (50, 150) y (40 , 90)
    73 //       BOOL b2 = CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(60, 45));
    74 //        
    75 //        NSLog(@"%d", b2);
    76         
    77   
    78         
    79         
    80     }
    81     return 0;
    82 }
      1 //
      2 //  main.m
      3 //  字符串
      4 //
      5 //  Created by Mac-ZhangXiaoMeng on 14/12/29.
      6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
      7 //
      8 
      9 #import <Foundation/Foundation.h>
     10 
     11 int main(int argc, const char * argv[]) {
     12     @autoreleasepool {
     13         
     14         /*
     15          NSString : 不可变字符串
     16          
     17          NSMutableString : 可变字符串
     18          */
     19         
     20 
     21 //         1.字符串的创建
     22 //         */
     23 //        NSString *s1 = @"jack";
     24 //        
     25 //        NSString *s2 = [[NSString alloc] initWithString:@"jack"];
     26 //        
     27 //        NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10];
     28 //        
     29 //
     30 //        C字符串 --> OC字符串
     31 //        NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];
     32 //        OC字符串 --> C字符串
     33 //        const char *cs = [s4 UTF8String];
     34 
     35         
     36         
     37         // NSUTF8StringEncoding 用到中文就可以用这种编码
     38       //  NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];
     39 
     40 
     41         // URL : 资源路径
     42         // 协议头://路径
     43         // file://
     44         // ftp://
     45         // http://weibo.com/a.png
     46         
     47         
     48         // http://www.baidu.com
     49         
     50         // NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];
     51        
     52 //        NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"];
     53 //        
     54 //        NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
     55 //        NSLog(@"s6=
    %@", s6);
     56         
     57         
     58         
     59         
     60         /*
     61          一般都会有一个  类方法  跟对象方法配对
     62          [NSURL URLWithString:<#(NSString *)#>];
     63          
     64          [NSString stringWithFormat:@""];
     65         
     66          文件:
     67          [NSString stringWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>];
     68          
     69          */
     70 
     71 //
     72 //     3.   void stringExport()
     73 //        {
     74 //            // 字符串的导出
     75 //            [@"Jack
    Jack" writeToFile:@"/Users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
     76 //            
     77 //            
     78 //            NSString *str = @"4234234";
     79 //            NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/my2.txt"];
     80 //            [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
     81 //        }
     82 
     83         
     84         
     85         
     86 //      4.
     87 //        
     88         NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"];
     89         // 拼接内容到s1的后面
     90         [s1 appendString:@"11 12"];
     91         
     92         // 获取is的范围
     93         NSRange range = [s1 rangeOfString:@"is"];
     94         [s1 deleteCharactersInRange:range]; //删掉is
     95         
     96         
     97         NSString *s2 = [NSString stringWithFormat:@"age is 10"];
     98         
     99         //又创建一个字符串
    100         NSString *s3 = [s2 stringByAppendingString:@" 11 12"];
    101         
    102         
    103         NSLog(@"s1=%@
    , s2=%@
    ,s3=%@
    ", s1, s2,s3);
    104 //
    105        
    106         
    107         
    108         
    109 //                     //快速视频
    110         
    111         
    112 //#pragma mark 字符串的大小写处理
    113 //        void caseTest() {
    114 //            NSString *str = @"GuangDong";
    115 //            // 转成大写
    116 //            NSLog(@"大写:%@", [str uppercaseString]);
    117 //            // 转成小写
    118 //            NSLog(@"小写:%@", [str lowercaseString]);
    119 //            // 首字母变大写,其他字母变小写
    120 //            NSLog(@"首字母变大写:%@", [@"aGE" capitalizedString]);
    121 //        }
    122 //        
    123 //#pragma mark 字符串的比较
    124 //        void compare() {
    125 //            // 检测字符串的内容是否相同
    126 //            BOOL result = [@"abc" isEqualToString:@"abc"];
    127 //            NSLog(@"%i", result);
    128 //            
    129 //            // NSOrderedAscending  右边的字符串比左边大
    130 //            // NSOrderedSame  两个字符串的内容相同
    131 //            // NSOrderedDescending  左边的字符串比右边的大
    132 //            NSComparisonResult result2 = [@"abc" compare:@"Abc"];
    133 //            if (result2 == NSOrderedSame) {
    134 //                NSLog(@"两个字符串的内容相同");
    135 //            } else if (result2 == NSOrderedAscending) {
    136 //                NSLog(@"右边 > 左边");
    137 //            } else if (result2 == NSOrderedDescending) {
    138 //                NSLog(@"右边 < 左边");
    139 //            }
    140 //        }
    141 //        
    142 //#pragma mark 字符串的搜索
    143 //        void search() {
    144 //            NSString *str = @"123456456.txt";
    145 //            
    146 //            NSLog(@"是否以22开头:%i", [str hasPrefix:@"22"]);
    147 //            NSLog(@"是否以txt结尾:%i", [str hasSuffix:@"txt"]);
    148 //            
    149 //            // 搜索字符串
    150 //            NSRange range = [str rangeOfString:@"456"];
    151 //            // range.length == 0
    152 //            if (range.location == NSNotFound) {
    153 //                NSLog(@"不能找到");
    154 //            } else {
    155 //                NSLog(@"找到的范围是:%@", NSStringFromRange(range));
    156 //            }
    157 //            
    158 //            // 从尾部开始搜索字符串
    159 //            range = [str rangeOfString:@"456" options:NSBackwardsSearch];
    160 //            NSLog(@"%@", NSStringFromRange(range));
    161 //            
    162 //            // 指定范围进行搜索
    163 //            // [str rangeOfString:@"456" options:NSBackwardsSearch range:<#(NSRange)#>];
    164 //        }
    165 //        
    166 //#pragma mark 字符串的截取
    167 //        void subString() {
    168 //            NSString *str = @"123456";
    169 //            
    170 //            // 从索引3开始截取到尾部(包括3)
    171 //            NSLog(@"%@", [str substringFromIndex:3]);
    172 //            
    173 //            // 从头部开始截取到索引3之前(不包括3)
    174 //            NSLog(@"%@", [str substringToIndex:3]);
    175 //            
    176 //            // 指定范围进行截取
    177 //            NSRange range = NSMakeRange(2, 3);
    178 //            NSLog(@"%@", [str substringWithRange:range]);
    179 //            
    180 //            NSString *str2 = @"a-b-c-d-5";
    181 //            NSArray *array = [str2 componentsSeparatedByString:@"-"];
    182 //            NSLog(@"%@", array);
    183 //            
    184 //            NSString *str3 =  [array objectAtIndex:0];
    185 //            NSLog(@"%@", str3);
    186 //        }
    187 //        
    188 //#pragma mark 与路径相关
    189 //        void pathTest() {
    190 //            // 快速创建一个自动释放的数组
    191 //            NSMutableArray *components = [NSMutableArray array];
    192 //            [components addObject:@"Users"];
    193 //            [components addObject:@"MJ"];
    194 //            [components addObject:@"Desktop"];
    195 //            // 将数组中的所有字符串拼接成一个路径
    196 //            NSString *path = [NSString pathWithComponents:components];
    197 //            NSLog(@"%@", path);
    198 //            
    199 //            // 将路径分解成一个数组
    200 //            NSArray *cmps = [path pathComponents];
    201 //            NSLog(@"%@", cmps);
    202 //            
    203 //            // path是一个字符串常量,是不可变的
    204 //            path = @"/users/mj/test";
    205 //            // 判断是够为绝对路径(依据是前面有无/)
    206 //            NSLog(@"%i", [path isAbsolutePath]);
    207 //            NSLog(@"最后一个目录:%@", [path lastPathComponent]);
    208 //            // 删除最后一个目录
    209 //            NSLog(@"%@", [path stringByDeletingLastPathComponent]);
    210 //            // 在最后面拼接一个目录
    211 //            NSLog(@"%@", [path stringByAppendingPathComponent:@"abc"]);
    212 //        }
    213 //        
    214 //#pragma mark 拓展名处理
    215 //        void extension() {
    216 //            NSString *str = @"/User/MJ/test.txt";
    217 //            
    218 //            NSLog(@"拓展名:%@", [str pathExtension]);
    219 //            // 删除拓展名
    220 //            NSLog(@"%@", [str stringByDeletingPathExtension]);
    221 //            // 添加拓展名
    222 //            NSLog(@"%@", [@"abc" stringByAppendingPathExtension:@"mp3"]);
    223 //        }
    224 //        
    225 //#pragma mark 其他用法
    226 //        void other() {
    227 //            NSString *str = @"12";
    228 //            int a = [str intValue];
    229 //            NSLog(@"%i", a);
    230 //            
    231 //            // 计算字数,不是计算字符数
    232 //            NSLog(@"length=%zi", [@"我是字符串123" length]);
    233 //            
    234 //            // 取出对应的字符
    235 //            unichar c = [@"abc" characterAtIndex:0];
    236 //            NSLog(@"%c", c);
    237 //            
    238 //            // 返回C语言中的字符串
    239 //            const char *s = [@"abc" UTF8String];
    240 //            NSLog(@"%s", s);
    241 //        }
    242 //        
    243         
    244         
    245 //#pragma mark 可变字符串的创建
    246 //        void stringCreate() {
    247 //            // 预先分配10个字数的存储空间
    248 //            NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10];
    249 //            // 设置字符串内容
    250 //            [str setString:@"1234"];
    251 //            
    252 //            // 拼接一个字符串
    253 //            [str appendString:@"567"];
    254 //            // 拼接字符串
    255 //            [str appendFormat:@"age is %i and height is %.2f", 27, 1.55f];
    256 //            
    257 //            // 替换字符串
    258 //            NSRange range = [str rangeOfString:@"height"];
    259 //            //NSRange range = NSMakeRange(7, 3);
    260 //            [str replaceCharactersInRange:range withString:@"no"];
    261 //            
    262 //            // 插入字符串
    263 //            [str insertString:@"abc" atIndex:2];
    264 //            
    265 //            // 删除字符串
    266 //            range = [str rangeOfString:@"age"];
    267 //            [str deleteCharactersInRange:range];
    268 //            
    269 //            NSLog(@"%@", str);
    270 //            
    271 //            // 释放对象
    272 //            [str release];
    273 //        }
    274 
    275         
    276         
    277     }
    278     return 0;
    279 }
      1 //
      2 //  main.m
      3 //  NSArray
      4 //
      5 //  Created by Mac-ZhangXiaoMeng on 14/12/30.
      6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
      7 //
      8 
      9 #import <Foundation/Foundation.h>
     10 #import "Person.h"
     11 #import "Student.h"
     12 int main(int argc, const char * argv[]) {
     13     @autoreleasepool {
     14        
     15         /*
     16          
     17          NSArray :不可变数组
     18          NSMutableArray : 可变数组
     19          
     20          */
     21 
     22         
     23         //NSArray *array = @[@"jack", @"rose"];
     24 
     25         
     26         
     27         
     28         /*  1.
     29          int a = 5;
     30          
     31          int ages[10] = {1, 90, 89, 17};
     32          
     33          Person *p = [[Person alloc] init];
     34          Person *persons[5] = {p,  [[Person alloc] init]};
     35          */
     36         
     37         // OC数组不能存放nil值
     38         // OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等
     39         
     40         // 这个array永远是空数组
     41         // NSArray *array = [NSArray array];
     42 
     43         
     44         /*
     45          2.NSArray的创建
     46          
     47         NSArray *array2 = [NSArray arrayWithObject:@"jack"];
     48         
     49         
     50          // nil是数组元素结束的标记,有2个元素不可变
     51         NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
     52          
     53         //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];
     54         
     55         
     56          // 快速创建一个NSArray对象
     57         NSArray *array4 = @[@"jack", @"rose", @"4324324"];
     58         
     59         */
     60         
     61         /*
     62          
     63          2.NSArray的元素个数
     64          
     65         NSLog(@"%ld", array3.count);
     66         
     67         
     68         
     69          3.NSArray中元素的访问
     70          
     71         NSLog(@"%@", [array3 objectAtIndex:1]);
     72         
     73         //array3[1];
     74         NSLog(@"%@", array3[0]);
     75        
     76          
     77         */
     78    
     79         
     80         //  4.遍历数组
     81         
     82 //        Person *p = [[Person alloc] init];
     83 //        
     84 //
     85 //        NSArray *array = @[p, @"rose", @"jack"];
     86 //       // 第一种
     87 //            for (int i = 0; i<array.count; i++)
     88 //            {
     89 //                NSLog(@"%i-%@", i,array[i]);
     90 //            }
     91 
     92         //第二种
     93         //快速遍历
     94                       // id obj代表着数组中的每一个元素
     95 //            int i = 0;
     96 //            for (id obj in array)
     97 //            {
     98 //                // 找出obj元素在数组中的位置
     99 //                //NSUInteger i = [array indexOfObject:obj];
    100 //        
    101 //                NSLog(@"%ld - %@", i, obj);
    102 //                i++;
    103 //        
    104 //                if (i==3)
    105 //                {
    106 //                    break;
    107 //                }
    108 //            }
    109 //
    110         
    111         // 第三种
    112         // 每遍历到一个元素,就会调用一次block
    113         // 并且当前元素和索引位置当做参数传给block
    114 
    115 //        [array enumerateObjectsUsingBlock:
    116 //         
    117 //         ^(id obj, NSUInteger idx, BOOL *stop)
    118 //         {
    119 //             NSLog(@"%ld - %@", idx, obj);
    120 //             
    121 //             
    122 //             if (idx == 1)
    123 //             {
    124 //                 // 停止遍历
    125 //                 *stop = YES;
    126 //             }
    127 //             
    128 //         }];
    129         
    130        
    131         //6.    可变数组的基本使用
    132 //        
    133 //        NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];
    134 //        
    135 //          // 添加元素
    136 //        //[array addObject:[[Person alloc] init]];
    137 //        
    138 //        [array addObject:@"jack"];
    139 //        
    140 //        // 删除所有元素
    141 //        //[array removeAllObjects];
    142 //        // 删除指定的对象
    143 //        // [array removeObject:@"jack"];
    144 //        //[array removeObjectAtIndex:0];
    145 //        
    146 //
    147 //        // [array addObject:nil];// 错误写法
    148 //        
    149 //        
    150 //        NSLog(@"%@", array);
    151 //        
    152 //        NSLog(@"%ld", array.count);
    153 //
    154 //        
    155 //        
    156 //        // @[] 只创建不可变数组NSArray
    157 //        /* 错误写法
    158 //         NSMutableArray *array = @[@"jack", @"rose"];
    159 //         
    160 //         [array addObject:@"jim"];
    161 //         */
    162         
    163         
    164         
    165         //4.                快速视频
    166         
    167         
    168 //#pragma mark 创建一个数组
    169 //        void arrayCreate() {
    170 //            // 创建一个空的数组
    171 //            NSArray *array = [NSArray array];
    172 //            
    173 //            // 创建有1个元素的数组
    174 //            array = [NSArray arrayWithObject:@"123"];
    175 //            
    176 //            // 创建有多个元素的数组
    177 //            array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
    178 //            
    179 //            int count = [array count];
    180 //            // count = array.count;
    181 //            NSLog(@"%i", count);
    182 //        }
    183 //        
    184 //#pragma mark 数组的简单使用
    185 //        void arrayUse() {
    186 //            NSObject *obj = [[NSObject alloc] init];
    187 //            NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c" , obj, nil];
    188 //            // 判断是否包含了某个元素
    189 //            if ([array containsObject:@"a"]) {
    190 //                NSLog(@"包含了字符串a");
    191 //            }
    192 //            
    193 //            NSString *last = [array lastObject];
    194 //            NSLog(@"last=%@", last);
    195 //            
    196 //            NSString *str = [array objectAtIndex:1];
    197 //            NSLog(@"%@", str);
    198 //            
    199 //            int index = [array indexOfObject:@"c"];
    200 //            NSLog(@"index=%i", index);
    201 //            
    202 //            [obj release];
    203 //        }
    204 //        
    205 //#pragma mark 数组的内存管理
    206 //        void arrayMemory() {
    207 //            // 1
    208 //            Student *stu1 = [[Student alloc] init];
    209 //            Student *stu2 = [[Student alloc] init];
    210 //            Student *stu3 = [[Student alloc] init];
    211 //            
    212 //            NSLog(@"stu1:%zi", [stu1 retainCount]);
    213 //            
    214 //            // 当把一个对象塞进数组中时,这个对象的计数器会加1,也就是说数组会对它做一次retain操作
    215 //            // 2
    216 //            NSArray *array = [[NSArray alloc] initWithObjects:stu1, stu2, stu3, nil];
    217 //            
    218 //            NSLog(@"stu1:%zi", [stu1 retainCount]);
    219 //            
    220 //            NSLog(@"count=%zi", array.count);
    221 //            
    222 //            // 1
    223 //            [stu1 release];
    224 //            [stu2 release];
    225 //            [stu3 release];
    226 //            
    227 //            // 数组被销毁的时候,会对内部的所有元素都做一次release操作
    228 //            // 0
    229 //            [array release];
    230 //        }
    231 //        
    232 //#pragma mark 给数组里面的元素发送消息
    233 //        void arrayMessage() {
    234 //            Student *stu1 = [Student student];
    235 //            Student *stu2 = [Student student];
    236 //            Student *stu3 = [Student student];
    237 //            
    238 //            NSArray *array = [NSArray arrayWithObjects:stu1, stu2, stu3, nil];
    239 //            // 让数组里面的所有对象都调用test方法
    240 //            // [array makeObjectsPerformSelector:@selector(test)];
    241 //            [array makeObjectsPerformSelector:@selector(test2:) withObject:@"123"];
    242 //        }
    243 //        
    244 //#pragma mark 遍历数组1
    245 //        void arrayFor1() {
    246 //            Student *stu1 = [Student student];
    247 //            NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
    248 //            int count = array.count;
    249 //            for (int i = 0; i<count; i++) {
    250 //                // id == void *
    251 //                id obj = [array objectAtIndex:i];
    252 //                NSLog(@"%i-%@", i, obj);
    253 //            }
    254 //        }
    255 //        
    256 //#pragma mark 遍历数组2
    257 //        void arrayFor2() {
    258 //            Student *stu1 = [Student student];
    259 //            NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
    260 //            // 快速遍历
    261 //            int i =0;
    262 //            for (id obj in array) {
    263 //                NSLog(@"%i-%@", i, obj);
    264 //                i++;
    265 //            }
    266 //        }
    267 //        
    268 //#pragma mark 遍历数组3
    269 //        void arrayFor3() {
    270 //            Student *stu1 = [Student student];
    271 //            NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
    272 //            [array enumerateObjectsUsingBlock:
    273 //             ^(id obj, NSUInteger idx, BOOL *stop) {
    274 //                 NSLog(@"%i-%@", idx, obj);
    275 //                 
    276 //                 // 如果索引为1,就停止遍历
    277 //                 if (idx == 1) {
    278 //                     // 利用指针修改外面BOOL变量的值
    279 //                     *stop = YES;
    280 //                 }
    281 //             }];
    282 //        }
    283 //        
    284 //#pragma mark 遍历数组4
    285 //        void arrayFor4() {
    286 //            Student *stu1 = [Student student];
    287 //            NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
    288 //            
    289 //            // 获取数组的迭代器
    290 //            // NSEnumerator *enumerator = [array objectEnumerator];
    291 //            // 反序迭代器(从尾部开始遍历元素)
    292 //            NSEnumerator *enumerator = [array reverseObjectEnumerator];
    293 //            
    294 //            // allObjects是取出没有被遍历过的对象
    295 //            NSArray *array2 = [enumerator allObjects];
    296 //            NSLog(@"array2:%@", array2);
    297 //            
    298 //            // 获取下一个需要遍历的元素
    299 //            id obj = nil;
    300 //            while (obj = [enumerator nextObject]) {
    301 //                NSLog(@"obj=%@", obj);
    302 //            }
    303 //        }
    304 //
    305 //        
    306         
    307 //        
    308 //#pragma mark 派生出新的数组
    309 //        void arrayNew() {
    310 //            NSArray *array = [NSArray arrayWithObjects:@"1", @"2", nil];
    311 //            
    312 //            NSArray *array2 = [array arrayByAddingObject:@"3"];
    313 //            
    314 //            NSArray *array3 = [array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"4", @"5", nil]];
    315 //            
    316 //            NSLog(@"array:%@", array);
    317 //            NSLog(@"array2:%@", array2);
    318 //            NSLog(@"array3:%@", array3);
    319 //            
    320 //            
    321 //            NSArray *array4 = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
    322 //            NSRange range = NSMakeRange(1, 2);
    323 //            NSArray *array5 = [array4 subarrayWithRange:range];
    324 //            NSLog(@"array5:%@", array5);
    325 //        }
    326 //        
    327 //#pragma mark 数组的其他用法
    328 //        void arrayOther() {
    329 //            NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
    330 //            // 1-2-3-4
    331 //            // 利用分隔符-拼接所有的数组元素
    332 //            NSString *str = [array componentsJoinedByString:@"-"];
    333 //            NSLog(@"%@", str);
    334 //            
    335 //            // 将一个数组写入文件(生成的是一个xml文件)
    336 //            NSString *path = @"/Users/apple/Desktop/array.xml";
    337 //            [array writeToFile:path atomically:YES];
    338 //            
    339 //            
    340 //            path = @"/Users/apple/Desktop/array.txt";
    341 //            // 从文件中读取数组内容(文件有严格的格式要求)
    342 //            NSArray *array2 = [NSArray arrayWithContentsOfFile:path];
    343 //            NSLog(@"array2:%@", array2);
    344 //        }
    345 //        
    346 //#pragma mark 数组排序1
    347 //        void arraySort1() {
    348 //            NSArray *array = [NSArray arrayWithObjects:@"2", @"3", @"1", @"4", nil];
    349 //            
    350 //            // 返回一个排好序的数组,原来数组的元素顺序不会改变
    351 //            // 指定元素的比较方法:compare:
    352 //            NSArray *array2 = [array sortedArrayUsingSelector:@selector(compare:)];
    353 //            NSLog(@"array2:%@", array2);
    354 //        }
    355 //        
    356 //#pragma mark 数组排序2
    357 //        void arraySort2() {
    358 //            Student *stu1 = [Student studentWithFirstname:@"MingJie" lastname:@"Li"];
    359 //            Student *stu2 = [Student studentWithFirstname:@"LongHu" lastname:@"Huang"];
    360 //            Student *stu3 = [Student studentWithFirstname:@"LianJie" lastname:@"Li"];
    361 //            Student *stu4 = [Student studentWithFirstname:@"Jian" lastname:@"Xiao"];
    362 //            NSArray *array = [NSArray arrayWithObjects:stu1,stu2,stu3, stu4, nil];
    363 //            
    364 //            // 指定排序的比较方法
    365 //            NSArray *array2 = [array sortedArrayUsingSelector:@selector(compareStudent:)];
    366 //            
    367 //            NSLog(@"array2:%@", array2);
    368 //        }
    369 //        
    370 //#pragma mark 数组排序3
    371 //        
    372 //            Student *stu1 = [Student studentWithFirstname:@"MingJie" lastname:@"Li"];
    373 //            Student *stu2 = [Student studentWithFirstname:@"LongHu" lastname:@"Huang"];
    374 //            Student *stu3 = [Student studentWithFirstname:@"LianJie" lastname:@"Li"];
    375 //            Student *stu4 = [Student studentWithFirstname:@"Jian" lastname:@"Xiao"];
    376 //            NSArray *array = [NSArray arrayWithObjects:stu1,stu2,stu3, stu4, nil];
    377 //            
    378 //            // 利用block进行排序
    379 //            NSArray *array2 = [array sortedArrayUsingComparator:
    380 //                               ^NSComparisonResult(Student *obj1, Student *obj2) {
    381 //                                   // 先按照姓排序
    382 //                                   NSComparisonResult result = [obj1.lastname compare:obj2.lastname];
    383 //                                   // 如果有相同的姓,就比较名字
    384 //                                   if (result == NSOrderedSame) {
    385 //                                       result = [obj1.firstname compare:obj2.firstname];
    386 //                                   }
    387 //                                   
    388 //                                   return result;
    389 //                               }];
    390 //            
    391 //            NSLog(@"array2:%@", array2);
    392        
    393         
    394 //#pragma mark 数组排序4-高级排序
    395 //        void arraySort4() {
    396 //            Student *stu1 = [Student studentWithFirstname:@"MingJie" lastname:@"Li" bookName:@"book1"];
    397 //            Student *stu2 = [Student studentWithFirstname:@"LongHu" lastname:@"Huang" bookName:@"book2"];
    398 //            Student *stu3 = [Student studentWithFirstname:@"LianJie" lastname:@"Li" bookName:@"book2"];
    399 //            Student *stu4 = [Student studentWithFirstname:@"Jian" lastname:@"Xiao" bookName:@"book1"];
    400 //            NSArray *array = [NSArray arrayWithObjects:stu1,stu2,stu3, stu4, nil];
    401 //            
    402 //            // 1.先按照书名进行排序
    403 //            // 这里的key写的是@property的名称
    404 //            NSSortDescriptor *bookNameDesc = [NSSortDescriptor sortDescriptorWithKey:@"book.name" ascending:YES];
    405 //            // 2.再按照姓进行排序
    406 //            NSSortDescriptor *lastnameDesc = [NSSortDescriptor sortDescriptorWithKey:@"lastname" ascending:YES];
    407 //            // 3.再按照名进行排序
    408 //            NSSortDescriptor *firstnameDesc = [NSSortDescriptor sortDescriptorWithKey:@"firstname" ascending:YES];
    409 //            // 按顺序添加排序描述器
    410 //            NSArray *descs = [NSArray arrayWithObjects:bookNameDesc, lastnameDesc, firstnameDesc, nil];
    411 //            
    412 //            NSArray *array2 = [array sortedArrayUsingDescriptors:descs];
    413 //            
    414 //            NSLog(@"array2:%@", array2);
    415 //        }
    416 
    417         
    418         
    419     }
    420     return 0;
    421 }
     1 //
     2 //  main.m
     3 //  NSSet
     4 //
     5 //  Created by Mac-ZhangXiaoMeng on 14/12/30.
     6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13        
    14         
    15         /*
    16          NSSet和NSArray的对比
    17          1> 共同点
    18          * 都是集合,都能存放多个OC对象
    19          * 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)
    20          * 本身都不可变,都有一个可变的子类
    21          
    22          2> 不同点
    23          * NSArray有顺序,NSSet没有顺序
    24          */
    25 
    26         
    27         
    28 //       1.
    29 //        NSSet *s = [NSSet set];
    30 //        
    31 //        NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose", @"jack2",@"jack3",nil];
    32 //        
    33 //        // 随机拿出一个元素
    34 //        NSString *str =  [s2 anyObject];
    35 //        
    36 //        NSLog(@"%@", str);
    37 //        
    38 //        //NSLog(@"%ld", s2.count);
    39 
    40 //       2.
    41 //        NSMutableSet *s = [NSMutableSet set];
    42 //        
    43 //        // 添加元素
    44 //        [s addObject:@"hack"];
    45 //        [s addObject:@"jack"];
    46 //
    47 //        
    48 //        // 删除某个元素
    49 //        [s removeObject:@"jack"];
    50 //        // 删除所有元素
    51 //       // [s removeAllObjects    ];
    52 //        NSLog(@"%@",s);
    53 
    54         
    55         
    56         
    57         
    58         
    59         
    60         
    61         
    62         
    63         
    64         
    65         
    66     }
    67     return 0;
    68 }
      1 //
      2 //  main.m
      3 //  04-计算代码行数
      4 //
      5 //  Created by apple on 13-8-12.
      6 //  Copyright (c) 2013年 itcast. All rights reserved.
      7 //
      8 
      9 /*
     10  * 考察NSString、NSArray的使用
     11  * NSFileManager
     12  */
     13 
     14 #import <Foundation/Foundation.h>
     15 
     16 
     17 // 计算文件的代码行数
     18 /*
     19  path : 文件的全路径(可能是文件夹、也可能是文件)
     20  返回值 int :代码行数
     21  */
     22 NSUInteger codeLineCount(NSString *path)
     23 {
     24     // 1.获得文件管理者
     25     NSFileManager *mgr = [NSFileManager defaultManager];
     26     
     27     // 2.标记是否为文件夹
     28     BOOL dir = NO; // 标记是否为文件夹
     29     // 标记这个路径是否存在
     30     BOOL exist = [mgr fileExistsAtPath:path isDirectory:&dir];
     31     
     32     // 3.如果不存在,直接返回0
     33     if(!exist)
     34     {
     35         NSLog(@"文件路径不存在!!!!!!");
     36         return 0;
     37     }
     38     
     39     // 代码能来到着,说明路径存在
     40     
     41     
     42     if (dir)
     43     { // 文件夹
     44         // 获得当前文件夹path下面的所有内容(文件夹、文件)
     45         NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil];
     46         
     47         // 定义一个变量保存path中所有文件的总行数
     48         int count = 0;
     49         
     50         // 遍历数组中的所有子文件(夹)名
     51         for (NSString *filename in array)
     52         {
     53             // 获得子文件(夹)的全路径
     54             NSString *fullPath = [NSString stringWithFormat:@"%@/%@", path, filename];
     55             
     56             // 累加每个子路径的总行数
     57             count += codeLineCount(fullPath);
     58         }
     59         
     60         return count;
     61     }
     62     else
     63     { // 文件
     64         // 1.判断文件的拓展名(忽略大小写)
     65         NSString *extension = [[path pathExtension] lowercaseString];
     66         if (![extension isEqualToString:@"h"]
     67             && ![extension isEqualToString:@"m"]
     68             && ![extension isEqualToString:@"c"])
     69         {
     70             // 文件拓展名不是h,而且也不是m,而且也不是c
     71             return 0;
     72         }
     73         
     74         // 2.加载文件内容
     75         NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
     76         
     77         //3.将文件内容切割为每一行
     78         NSArray *array = [content componentsSeparatedByString:@"
    "];
     79         NSLog(@"%@ - %ld", path, array.count);
     80         return array.count;
     81         
     82 
     83 //        //4. 删掉文件路径前面的/Users/Mac/desktop/oc
     84 //        NSRange range = [path rangeOfString:@"/Users/Mac/desktop/oc/"];
     85 //        NSString *str = [path stringByReplacingCharactersInRange:range withString:@""];
     86 //        
     87 //        // 打印文件路径和行数
     88 //        NSLog(@"%@ - %ld", str, array.count);
     89 //
     90     }
     91 }
     92 
     93 
     94 
     95 
     96 int main()
     97 {
     98     
     99     NSUInteger count = codeLineCount(@"/Users/Mac/desktop/oc");
    100     
    101     NSLog(@"%ld", count);
    102     
    103     
    104     return 0;
    105 }
    106 
    107 
    108 
    109 
    110 
    111 void test()
    112 {
    113     //练习 文本的代码行数
    114     NSString *str = @"jack
    rose
    jim
    jake";
    115     
    116     [str writeToFile:@"//Users/Mac/desktop/练习" atomically:YES encoding:NSUTF8StringEncoding error:nil];
    117     
    118     
    119     NSArray *array = [str componentsSeparatedByString:@"
    "];
    120     
    121     for (NSString *line in array)
    122     {
    123         NSLog(@"%@", line);
    124     }
    125     
    126     
    127     //int count = codeLineCount(@"/Users/apple/Desktop/iOS课堂共享/0722课堂共享/0811/代码/04-block/04-block/main.m");
    128     
    129     //NSLog(@"count=%d", count);
    130 }
      1 //
      2 //  main.m
      3 //  NSDictionary
      4 //
      5 //  Created by Mac-ZhangXiaoMeng on 14/12/30.
      6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
      7 //
      8 
      9 #import <Foundation/Foundation.h>
     10 
     11 int main(int argc, const char * argv[]) {
     12     @autoreleasepool {
     13        
     14         /*
     15          集合
     16          1.NSArrayNSMutableArray
     17          * 有序
     18          * 快速创建(不可变):@[obj1, obj2, obj3]
     19          * 快速访问元素:数组名[i]
     20          
     21          2.NSSetNSMutableSet
     22          * 无序
     23          
     24          3.NSDictionaryNSMutableDictionary
     25          * 无序
     26          * 快速创建(不可变):@{key1 : value1,  key2 : value2}
     27          * 快速访问元素:字典名[key]
     28          */
     29 
     30         
     31         /*
     32          字典:
     33          
     34          key ----> value
     35          索引 ----> 文字内容
     36          
     37          里面存储的东西都是键 值对
     38          
     39          */
     40            //   2.
     41         
     42         // NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];
     43         
     44         //   3.
     45         // NSArray *keys = @[@"name", @"address"];
     46         // NSArray *objects = @[@"jack", @"北京"];
     47         
     48         // NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
     49         // id obj = [dict objectForKey:@"name"];
     50         // NSLog(@"%@",obj);  //打印名字
     51 
     52         
     53         /*   4.
     54          NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
     55          @"jack", @"name",
     56          @"北京", @"address",
     57          @"32423434", @"qq", nil];
     58          
     59          */
     60         
     61         //  5.简化的 记住
     62 //        NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};
     63 //        id obj = dict[@"name"];//等价 id obj = [dict objectForKey:@"name"];
     64 //        NSLog(@"%@", obj);
     65         
     66 //        // 6.   返回的是键值对的个数
     67 //        NSLog(@"%ld", dict.count);
     68     
     69     
     70     
     71     //                     NSMutableDictionary
     72     
     73     
     74 //    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
     75 //    
     76 //    // 添加键值对
     77 //    [dict setObject:@"jack" forKey:@"name"];
     78 //    
     79 //    
     80 //    [dict setObject:@"北京" forKey:@"address"];
     81 //    //覆盖以前的name
     82 //    [dict setObject:@"rose" forKey:@"name"];
     83 //    
     84 //    
     85 //    // 移除键值对
     86 //     //[dict removeObjectForKey:@"name"];
     87 //    
     88 //    
     89 //    NSString *str = dict[@"name"];
     90 //    
     91 //    
     92 //    NSLog(@"%@", str);
     93 //    
     94 //    NSLog(@"%@", dict);
     95     
     96     
     97     //NSLog(@"%@", @[@"jack", @"rose"]);
     98 
     99         
    100         
    101 //          错误做法右边为不可变字典
    102 //        NSMutableDictionary *dict = @{@"name" : @"jack"};
    103 //        
    104 //        [dict setObject:@"rose" forKey:@"name"];
    105  
    106         
    107         //  7.          遍历字典
    108         
    109         //字典不允许有相同的key,但允许有相同的value(Object)
    110         // 字典的无序的
    111 //
    112 //        NSDictionary *dict = @{
    113 //                               @"address" : @"北京",
    114 //                               @"name" : @"jack",
    115 //                               @"name2" : @"jack",
    116 //                               @"name3" : @"jack",
    117 //                               @"qq" : @"7657567765"};
    118 ////
    119 //
    120 //            //   第一种
    121 //            NSArray *keys = [dict allKeys];
    122 //        
    123 //            for (int i = 0; i<dict.count; i++)
    124 //            {
    125 //                NSString *key = keys[i];
    126 //                NSString *object = dict[key];
    127 //                
    128 //                NSLog(@"%@ = %@", key, object);
    129 //            }
    130 //
    131 //        
    132 //            //      第二种block
    133 //        [dict enumerateKeysAndObjectsUsingBlock:
    134 //         ^(id key, id obj, BOOL *stop) {
    135 //             NSLog(@"%@ - %@", key, obj);
    136 //             
    137 //             // *stop = YES;
    138 //         }];
    139 
    140         
    141         
    142         // 8.
    143         
    144         
    145 //        NSArray *persons = @[
    146 //                             @{@"name" : @"jack", @"qq" : @"432423423", @"books": @[@"5分钟突破iOS编程", @"5分钟突破android编程"]},
    147 //                             @{@"name" : @"rose", @"qq" : @"767567"},
    148 //                             @{@"name" : @"jim", @"qq" : @"423423"},
    149 //                             @{@"name" : @"jake", @"qq" : @"123123213"}
    150 //                             ];
    151 //        
    152 //        //
    153 //        // NSDictionary *jim = persons[2];
    154 //        
    155 //        
    156 //        //
    157 //        NSString *bookName = persons[0][@"books"][1];
    158 //        NSLog(@"%@", bookName);
    159 //        //NSArray *array = persons[0][@"books"];
    160 //        
    161 //        //NSLog(@"%@", array);
    162 //        
    163 //        // 先取出1位置对应的字典
    164 //        // 再取出字典中qq这个key对应的数据
    165 //        //NSLog(@"%@", persons[1][@"qq"]);
    166 //        
    167 //        // NSLog(@"%@", jim);
    168 //
    169         
    170         
    171         //              快速视频
    172         
    173         
    174 //#pragma mark 字典的初始化
    175 //        void dictCreate() {
    176 //            // NSDictionary是不可变的
    177 //            NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
    178 //            
    179 //            // 最常用的初始化方式
    180 //            dict = [NSDictionary dictionaryWithObjectsAndKeys:
    181 //                    @"v1", @"k1",
    182 //                    @"v2", @"k2",
    183 //                    @"v3", @"k3", nil];
    184 //            
    185 //            NSArray *objects = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil];
    186 //            NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
    187 //            dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
    188 //            NSLog(@"%@", dict);
    189 //        }
    190 //        
    191 //#pragma mark 字典的基本用法
    192 //        void dictUse() {
    193 //            NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    194 //                                  @"v1", @"k1",
    195 //                                  @"v2", @"k2",
    196 //                                  @"v3", @"k3", nil];
    197 //            
    198 //            // count是计算有多少个键值对(key-value)
    199 //            NSLog(@"count=%zi", dict.count);
    200 //            
    201 //            // 由于NSDictionary是不可变的,所以只能取值,而不能修改值
    202 //            id obj = [dict objectForKey:@"k2"];
    203 //            NSLog(@"obj=%@", obj);
    204 //            
    205 //            // 将字典写入文件中
    206 //            NSString *path = @"/Users/apple/Desktop/dict.xml";
    207 //            [dict writeToFile:path atomically:YES];
    208 //            
    209 //            // 从文件中读取内容
    210 //            dict = [NSDictionary dictionaryWithContentsOfFile:path];
    211 //            NSLog(@"dict=%@", dict);
    212 //        }
    213 //        
    214 //#pragma mark 字典的用法
    215 //        void dictUse2() {
    216 //            NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    217 //                                  @"v1", @"k1",
    218 //                                  @"v2", @"k2",
    219 //                                  @"v3", @"k3", nil];
    220 //            // 返回所有的key
    221 //            NSArray *keys = [dict allKeys];
    222 //            //NSLog(@"keys=%@", keys);
    223 //            
    224 //            NSArray *objects = [dict allValues];
    225 //            //NSLog(@"objects=%@", objects);
    226 //            
    227 //            // 根据多个key取出对应的多个value
    228 //            // 当key找不到对应的value时,用marker参数值代替
    229 //            objects = [dict objectsForKeys:[NSArray arrayWithObjects:@"k1", @"k2", @"k4", nil] notFoundMarker:@"not-found"];
    230 //            NSLog(@"objects=%@", objects);
    231 //        }
    232 //        
    233 //#pragma mark 遍历字典
    234 //        void dictFor() {
    235 //            NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    236 //                                  @"v1", @"k1",
    237 //                                  @"v2", @"k2",
    238 //                                  @"v3", @"k3", nil];
    239 //            // 遍历字典的所有key
    240 //            for (id key in dict) {
    241 //                id value = [dict objectForKey:key];
    242 //                NSLog(@"%@=%@", key, value);
    243 //            }
    244 //        }
    245 //        
    246 //#pragma mark 遍历字典2
    247 //        void dictFor2() {
    248 //            NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    249 //                                  @"v1", @"k1",
    250 //                                  @"v2", @"k2",
    251 //                                  @"v3", @"k3", nil];
    252 //            // key迭代器
    253 //            NSEnumerator *enumer = [dict keyEnumerator];
    254 //            id key = nil;
    255 //            while ( key = [enumer nextObject]) {
    256 //                id value = [dict objectForKey:key];
    257 //                NSLog(@"%@=%@", key, value);
    258 //            }
    259 //            
    260 //            // 对象迭代器
    261 //            // [dict objectEnumerator];
    262 //        }
    263 //        
    264 //#pragma mark 遍历字典3
    265 //        void dictFor3() {
    266 //            NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    267 //                                  @"v1", @"k1",
    268 //                                  @"v2", @"k2",
    269 //                                  @"v3", @"k3", nil];
    270 //            [dict enumerateKeysAndObjectsUsingBlock:
    271 //             ^(id key, id obj, BOOL *stop) {
    272 //                 NSLog(@"%@=%@", key, obj);
    273 //             }];
    274 //        }
    275 //        
    276 //#pragma mark 
    277 //        void dictMemory() {
    278 //            Student *stu1 = [Student studentWithName:@"stu1"];
    279 //            Student *stu2 = [Student studentWithName:@"stu2"];
    280 //            Student *stu3 = [Student studentWithName:@"stu3"];
    281 //            
    282 //            // 一个对象称为字典的key或者value时,会做一次retain操作,也就是计数器会+1
    283 //            NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    284 //                                  stu1, @"k1",
    285 //                                  stu2, @"k2",
    286 //                                  stu3, @"k3", nil];
    287 //            
    288 //            // 当字典被销毁时,里面的所有key和value都会做一次release操作,也就是计数器会-1
    289 //        }
    290 
    291         
    292 //#pragma mark 可变字典的使用
    293 //        void dictUse() {
    294 //            // 创建一个空的字典
    295 //            NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    296 //            Student *stu1 = [Student studentWithName:@"stu1"];
    297 //            Student *stu2= [Student studentWithName:@"stu2"];
    298 //            
    299 //            // 添加元素
    300 //            // stu1的计数器会+1
    301 //            [dict setObject:stu1 forKey:@"k1"];
    302 //            NSLog(@"stu1:%zi", [stu1 retainCount]);
    303 //            
    304 //            // 添加其他字典other到当前字典dict中
    305 //            NSDictionary *other = [NSDictionary dictionaryWithObject:@"v2" forKey:@"k2"];
    306 //            [dict addEntriesFromDictionary:other];
    307 //            
    308 //            // 删除所有的键值对
    309 //            // [dict removeAllObjects];
    310 //            
    311 //            // 删除k1对应的元素stu1,stu1会做一次release操作
    312 //            [dict removeObjectForKey:@"k1"];
    313 //            NSLog(@"stu1:%zi", [stu1 retainCount]);
    314 //            
    315 //            // 删除多个key对应的value
    316 //            // [dict removeObjectsForKeys:[NSArray arrayWithObject:@"k1"]];
    317 //            
    318 //            // 字典被销毁时,内部的所有key和value计数器都会-1,也就是说stu1会release一次
    319 //        }
    320 //
    321         
    322         
    323     }
    324     return 0;
    325 }
     1 //
     2 //  main.m
     3 //  NSNumber
     4 //
     5 //  Created by Mac-ZhangXiaoMeng on 14/12/30.
     6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13         
    14         
    15         
    16 //        void test ()
    17 //        {
    18 //            NSNumber *num = [NSNumber numberWithInt:10];
    19 //            
    20 //            NSDictionary *dict =  @{
    21 //                                    @"name" : @"jack",
    22 //                                    
    23 //                                    
    24 //                                    @"age" : num
    25 //                                    
    26 //                                    };
    27 //            
    28 //            NSNumber *num2 = dict[@"age"];
    29 //            
    30 //            
    31 //            int a = [num2 intValue];
    32 //            
    33 //            NSLog(@"%d" , a);
    34 //        }
    35 //        
    36         
    37         //  2.
    38         // @20  将 20包装成一个NSNumber对像
    39         
    40         
    41 //        NSArray *array = @[
    42 //                           
    43 //                           @{@"name" : @"jack", @"age" : @20},
    44 //                           
    45 //                           @{@"name" : @"rose", @"age" : @25},
    46 //                           
    47 //                           @{@"name" : @"jim", @"age" : @27}
    48 //                           ];
    49 //        
    50 //        
    51 //        // 将各种基本数据类型包装成NSNumber对象
    52 //        @10.5;
    53 //        @YES;
    54 //        @'A'; // NSNumber对象
    55 //        
    56 //        @"A"; // NSString对象
    57 //        
    58 //        
    59 //        
    60 //        // 将age变量包装成NSNumber对象
    61 //        int age = 100;
    62 //        @(age);
    63 //        //[NSNumber numberWithInt:age];
    64 //        
    65 //        
    66 //        NSNumber *n = [NSNumber numberWithDouble:10.5];
    67 //        int d = [n doubleValue];
    68 //        
    69 //        
    70 //        
    71 //        int a = 20;
    72 //        // @"20"
    73 //        NSString *str = [NSString stringWithFormat:@"%d", a];
    74 //         NSLog(@"%d", [str intValue]);
    75         
    76     }
    77     return 0;
    78 }
     1 //
     2 //  main.m
     3 //  NSValue
     4 //
     5 //  Created by Mac-ZhangXiaoMeng on 14/12/30.
     6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13        
    14 //    // NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue
    15 //        
    16 //        // 结构体--->OC对象
    17 //              //结构体
    18 //        CGPoint p = CGPointMake(10, 10);
    19 //        // 将结构体转为Value对象
    20 //        NSValue *value = [NSValue valueWithPoint:p];
    21 //        
    22 //        // 将value转为对应的结构体
    23 //        // [value pointValue];
    24 //        
    25 //        NSArray *array = @[value ];
    26 //        
    27       
    28     
    29     }
    30     return 0;
    31 }
     1 //
     2 //  main.m
     3 //  NSDate
     4 //
     5 //  Created by Mac-ZhangXiaoMeng on 14/12/30.
     6 //  Copyright (c) 2014年 Mac-ZhangXiaoMeng. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {
    13        
    14     
    15 //        void use()
    16 //        {
    17 //            // 创建一个时间对象
    18 //            NSDate *date = [NSDate date];
    19 //            // 打印出的时候是0时区的时间(北京-东8区)
    20 //            NSLog(@"%@", date);
    21 //            
    22 //
    23         //     比date晚5秒钟
    24         //    NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
    25 
    26 //            // 从1970开始走过的秒数
    27 //            NSTimeInterval seconds = [date2 timeIntervalSince1970];
    28 //            
    29 //            // [date2 timeIntervalSinceNow];
    30 //        }
    31 //    
    32     
    33     
    34 //                    2.记住
    35         NSDate *date = [NSDate date];
    36          // 日期格式化类
    37         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    38         
    39         // y 年  M 月  d 日
    40         // m 分 s 秒  H (24)时  h(12)时
    41         formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    42         
    43         NSString *str = [formatter stringFromDate:date];
    44         
    45         NSLog(@"%@", str);
    46 
    47     
    48 //        // 09/10/2011
    49 //        NSString *time = @"2011/09/10 18:56";
    50 //        
    51 //        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    52 //        formatter.dateFormat = @"yyyy/MM/dd HH:mm";
    53 //        
    54 //        NSDate *date = [formatter dateFromString:time];
    55 //        NSLog(@"%@", date);
    56 //
    57 //    
    58     
    59     
    60     }
    61     return 0;
    62 }
  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/zhangxiaomeng1991/p/4194807.html
Copyright © 2011-2022 走看看