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 }
  • 相关阅读:
    SaveFileDialog
    在SQL Server 2008中配置文件流(FILESTREAM)
    C#中图片转二进制到存储数据库
    OpenFileDialog
    WPF中自定义只能输入数字的TextBox
    QL Server 2008新特性:FILESTREAM
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    winxp+Apache+Mysql+Python+Django安装配置
    django最佳实践
    Sphinx 在 windows 下安装使用
  • 原文地址:https://www.cnblogs.com/zhangxiaomeng1991/p/4194807.html
Copyright © 2011-2022 走看看