OC加强-day05

#program mark - 0_11 NSRange结构体介绍 [掌握]

Foundation框架中的一个结构体

NSRange 定义的一个变量的两个属性

location:起始下标

length:匹配到的长度

 

"随堂代码/0_11 NSRange结构体介绍/1_NSRange本质上是一个结构体

1.NSRange本质是一个结构体

typedef struct{

    NSUInteger    location;

    NSUInteger    length;

}NSRange;

 

 

2.定义NSRange变量的4种方式

 

int main()

{

    //方式1

    NSRange xiaoyueRange;

    xiaoyueRange.location = 2;

    xiaoyueRange.length = 3;

    

    //方式2

    NSRange xiaoyueRange2 = {2,3};

    

    //方式3

    NSRange xiaoyueRange3 = {.location = 2,.length = 3};

    

    //方式注意只要记住这一中就行了

    NSRange xiaoyueRange4 = NSMakeRange(2,3);

    

    

    return 0;

}

 

#program mark - 0_12 字符串的截取 [掌握]

 

 

int main(int argc, const char * argv[]) {

    NSString *str = @"123456";

    //从指定的下标开始一直截取到最后(包含这个下标对应的文字)

    NSLog("%p",str);

    NSString *str1 = [str substringFromIndex:3];

    NSLog(@"%@",str1);

    NSLog("%p",str1);

    //截取前面指定个数的文字

    NSString *str2 = [str substringToIndex:3];

    NSLog(@"%@",str2);

    //截取指定范围文字  从下标2开始,截取3个文字

    NSString *str3 = [str substringWithRange:NSMakeRange(2, 3)];

    NSLog(@"%@",str3);

    return 0;

}

 

#program mark - 0_13 字符串的替换[掌握]

 

 

"练习

把字符串@"祝大家新年快乐啊!" 中的 @"!" 删掉

 

int main()

{

    NSString *str =  @"祝大家新年快乐啊!";

    //string By Replacing Occurrences  Of String:  withString:

    //字符串    替换       存在             字符串  用字符串

    str =  [str stringByReplacingOccurrencesOfString:@"!" withString:@""];

    NSLog(@"%@",str);

    

    return 0;

}

 

//当要替换的字符串不存在的时候,不会报错,但是原样输出

int main()

{

    NSString *str =  @"祝大家新年快乐啊!";

    str =  [str stringByReplacingOccurrencesOfString:@"小明" withString:@""];

    NSLog(@"%@",str);

    

    return 0;

}

 

 

 

#program mark - 0_14 字符串类型的转换[掌握]

 

"强调

使用场景:经常需要用户在文本框textField中输入数字的app,比如支付宝,计算器,银行客户代表

 

"模拟

如果用户输入了@"100"这个字符串,把它转换成100.00传递给一个函数,摸您转账100.00.

 

 

//思路

//1.@"100"字符串转换成浮点数100.00

void zhuanZhang(double money);

int main()

{

    NSString *str =  @"100";

    double dou = [str doubleValue];

    zhuanZhang(dou);

    return 0;

}

 

//2.才把100.00传递给一个函数

void zhuanZhang(double money)

{

    NSLog(@"转账了%lf",money);

    

}

 

#program mark - 0_15 字符串的其他常用方法[听懂

 

取出字符串首部和尾部多余的空格

如果用户输入了@"   100   "这个字符串,把它转换成100.00传递给一个函数,摸您转账100.00.

 

 

//思路

//1.把字符@"  100 "转换成 @"100"

int main()

{

    NSString *str = @"      100      ";

    str = [str stringByTrimmingCharactersInset:空格对象]

    return 0;

}

//2.@"100"进行其他操作

void zhuanZhang(double money)

{

    NSLog(@"转账了%lf",money);

    

}

int main()

{

    NSString *str = @"      100      ";

    //string By  Trimming CharactersInSet

    //             裁剪      插入字符

    //[NSCharacterSet whitespaceCharacterSet]

    //创建一个空格对象

    str = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

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

    double dou  =  [str doubleValue];

    zhuanZhang(dou);

    return 0;

}

 

#program mark - 0_16 NSMutableString[掌握]

 

1.错误写法

//用一个自类的指针指向父类的对象,这是违背多态的规则的.

NSMutableString *Mstr =  @"123";

 

2.分析

int main()

{

    NSMutableString *Mstr =  [NSMutableString string];

    Mstr =  @"123";//编译不报错只报警告的原因,因为OC是弱语言,任何指针指向任何对象,编译报警告的原因:子类指针指向父类对象

    

    [Mstr appendFormat:@"345"];//编译没有警告的原因:编译检查 指针Mstr定义的时候是NSMutableString类型的,是拥有这个方法的

                               //运行错误的原因: 运行检查 Mstr指向的对象真实类型是NSString的对象,这个对象是不拥有这个方法的

}

 

 

2.NSMutableStringNSString相比优势是什么?

NSMutableString创建的对象是可变的,当需要反复修改一个字符串的时候,使用NSMutableString每次修改都在当前字符串上直接修改,不必新开辟空间创建对象

 

 

"练习

模拟:如果用户输入了@"100.1294"这个字符串,转换成100.12传给一个函数模拟转账.

void zhuuangZhang(double dou);

int main()

{

    //思路

    //1.@"100.1294" ---> @"100.12"

    //1>@"100.1294"这个不可变字符串转换成可变字符串

    NSMutableString *Mstr = [NSMutableString stringWithString:@"100.1294"];

    //2>想办法删除最后的94-->@"100.12"

    [Mstr deleteCharactersInRange:NSMakeRange(6, 2)];

    //2.@"100.12"转换成100.12传给一个函数

    double dou = [Mstr doubleValue];

    zhuuangZhang(dou);

    return 0;

}

void zhuuangZhang(double dou)

{

    NSLog(@"%lf",dou);

}

 

#program mark - 0_17 创建NSArray数组的方式 [掌握]

 

 

"强调

1.OC数组里面存储的是OC的对象,这些对象可以使不同类型的.只要是对象就可以

"随堂代码/0_17 创建NSArray数组的方式/1_OC数组里面存放的是对象,这些对象可以是不同类型的.

 

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    //方法创建

    NSArray *arr  = [NSArray arrayWithObjects:xiaoyue1,xiaoyue2,xiaoyue3, nil];

    //快速创建

    NSArray *arr2 = @[xiaoyue1,xiaoyue2,xiaoyue3];

    NSLog(@"%@",arr);

    NSLog(@"%@",arr2);

    

    return 0;

}

 

2.nil的注意点

"随堂代码/0_17 创建NSArray数组的方式/2_不要在数组没结束之前添加nil

1>通过方法创建的数组,不要在数组没有结束之前添加nil,如果提前添加,会导致nil后面的对象无法添加到数组.

int main(int argc, const char * argv[]) {

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    //方法创建

    NSArray *arr = [NSArray arrayWithObjects:xiaoyue1,xiaoyue2,nil,xiaoyue3,@"123", nil];

    NSLog(@"%@",arr);

    

    return 0;

}

 

2>通过快速创建方式,不能添加nil,加了马上报错

int main(int argc, const char * argv[]) {

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    //方法创建 下面代码立即报错

    NSArray *arr =  @[xiaoyue1,xiaoyue2,nil,xiaoyue3];

    NSLog(@"%@",arr);

    

    return 0;

}

 

#program mark - 0_18 取出存储在NSArray数组中的数据

 

1.由于NSArrayOC的类,那么它实例化的对象就可以用%@打印.

1>如果数组中元素包含中文字符串,%@直接打印数组对象,打印的是中文的unicode编码

 

"随堂代码/0_18 取出存储在NSArray数组中的数据/1_%@打印整个数组

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:xiaoyue1,xiaoyue2,xiaoyue3,@"123",@"",nil];

    NSLog(@"%@",arr);

    

    

    return 0;

}

2>如果重写了自定义对象的description方法,如果方法返回的字符串包含中文,%@打印整个数组,打印到整个自定义对象的时候,还会打印中文的unicode编码

 

2.如何获取OC数组中每一个元素

"随堂代码/0_18 取出存储在NSArray数组中的数据/2_下标法和对象方法

1>下标法

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:xiaoyue1,xiaoyue2,xiaoyue3,@"123",@"", nil];

    //下标法

    id xiaoyue4 =  arr[0];

    NSLog(@"%@",xiaoyue4);

    NSLog(@"%@",arr[1]);

    NSLog(@"%@",arr[2]);

    NSLog(@"%@",arr[3]);

    NSLog(@"%@",arr[4]);

    //oc数组仍然存在越界的现象

    NSLog(@"%@",arr[5]);//编译不报错,运行报错

    return 0;

}

//注意,上面打印方法是可以吧中文打印出来的

 

2>对象方法

id 变量名 = [数组名 objectAtIndex:下标]

 

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:xiaoyue1,xiaoyue2,xiaoyue3,@"123",@"", nil];

    

    id xiaoyue4 = [arr objectAtIndex:0];

    MKPerson *xiaoyue5 = [arr objectAtIndex:1];

    NSLog(@"%@",xiaoyue4);

    NSLog(@"%@",xiaoyue5);

    NSLog(@"%@",[arr objectAtIndex:2]);

    NSLog(@"%@",[arr objectAtIndex:3]);

    NSLog(@"%@",[arr objectAtIndex:4]);

    //这种方式仍然存在越界

    NSLog(@"%@",[arr objectAtIndex:5]);

    

    

    return 0;

}

 

#program mark - 0_19 NSArray数组常用的其他的方法 [掌握]

"随堂代码/0_19 NSArray数组常用的其他的方法/NSArray数组常用的其他的方法

 

 

1.获取数组内部元素的个数

1>get方法来获取count的值

@property (readonly) NSUInteger count;

2>例子

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"123", nil];

    NSLog(@"%lu",[arr count]);

    NSLog(@"%lu",arr.count);

    return 0;

}

 

2.判断数组内部是否包含某一个对象

1>方法

- (BOOL)containsObject:(ObjectType)anObject;

BOOL result = [数组名 containsObject:要查找的对象];

2>

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"124", nil];

    BOOL result = [arr containsObject:@"123"];

    switch (result) {

        case 1:

            NSLog(@"!");

            break;

        default:

            NSLog(@"没有!");

            break;

    }

    return 0;

}

 

3.获取数组中第一个元素/最后一个元素

1>get方法

@property (nullable(有可能为空), nonatomic, readonly) ObjectType(id) firstObject;

 

2>例子

 

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"124", nil];

    

    //第一个元素

    NSString *firObjct =  [arr firstObject];

    NSLog(@"%@",firObjct);

    //最后一个元素

    id lastObjct = [arr lastObject];

    NSLog(@"%@",lastObjct);

    return 0;

}

 

 

3>以后你获取一个数组的第一个元素/最后一个元素用下标法还是刚才讲的方法

lastObjct/firstObject,因为当前数组有可能是空的

 

int main(int argc, const char * argv[]) {

    

    

    NSArray *arr = [NSArray array];

    //    id obj = arr[0];

    id obj = [arr firstObject];

    NSLog(@"%@",obj);

    

    return 0;

}

 

 

4.查找指定的数组元素第一次出现的下标

 

1>找到返回下标,找不到就返回 2^63-1

- (NSUInteger)indexOfObject:(ObjectType)anObject;

2>例子

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"1234",xiaoyue1,xiaoyue2,xiaoyue3,@"1123", nil];

    

    NSUInteger index =  [arr indexOfObject:@"123"];

    NSLog(@"%lu",index);

    

    return 0;

}

 

#program mark - 0_20 NSArray数组的遍历 [重点掌握]

此知识点的复习见OC加强05视频笔记/0_20 NSArray数组的遍历.pdf

"随堂代码/0_20 NSArray数组的遍历/遍历

//方式1 最基本的for循环

int main()

{

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"123", nil];

    int arr_count =  (int)arr.count;

    for (int i = 0; i < arr_count; i++) {

        NSLog(@"%@",arr[i]);

        NSLog(@"%@",[arr objectAtIndex:i]);

    }

    

    

    return 0;

}

 

 

 

//方式二 增强for循环

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"123", nil];

    for(id xiaoyueObj in arr)

    {

        NSLog(@"%@",xiaoyueObj);

    }

    

    return 0;

}

 

 

 

//方式三

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"123", nil];

    //方式三

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

        NSLog(@"%@",obj);

        if(idx == 2)

        {

            *stop = YES;

        }

    }];

    

    return 0;

}

 

 

 

#program mark - 0_21 数组与字符串相关的两个方法 [听懂]

此知识点的复习见OC加强05视频笔记/0_21 数组与字符串相关的两个方法.pdf

 

 

 

 

#program mark - 0_22 NSMutableArray数组的新增 [掌握]

此知识点的复习见OC加强05视频笔记/0_22 NSMutableArray数组的新增.pdf

 

"强调

1.NSMutableArrayNSArray的子类,NSArray所有的功能NSMutableArray都是具有的,NSMutableArra有自己拓展的属性和方法

 

2.NSArray是一个不可变数组,NSArray对象内部存储的对象不能增加/删除/修改.但是NSMutableArray却可以

"随堂代码/0_22 NSMutableArray数组的新增/增删改

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *arr = [NSArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"123", nil];

    NSMutableArray *Marr =[NSMutableArray arrayWithObjects:@"123",xiaoyue1,xiaoyue2,xiaoyue3,@"123", nil];

    //

    //    arr[0] = @"124";

    //    Marr[0] =@"124";

    //增加

    //    [Marr addObject:@"456"];

    [arr ad]//根本没有这个方法

    

    return 0;

}

 

 

3.无论是可变数组还是不可变数组里面都可以存放数组

"随堂代码/0_22 NSMutableArray数组的新增/2_里面的元素都可以是数组

int main(int argc, const char * argv[]) {

    

    MKPerson *xiaoyue1 = [MKPerson new];

    MKPerson *xiaoyue2 = [MKPerson new];

    MKPerson *xiaoyue3 = [MKPerson new];

    NSArray *testArr = @[xiaoyue1,xiaoyue2,xiaoyue3];

    NSArray *arr = [NSArray arrayWithObjects:@"123",testArr, nil];

    NSMutableArray *Marr = [NSMutableArray arrayWithObjects:@"234",testArr ,nil];

    

    

    return 0;

}

 

#program mark - 0_23 NSMutableArray元素的删除 [掌握]

- (void)removeValueAtIndex:(NSUInteger)index fromPropertyWithKey:(NSString *)key;

 

 

#program mark - 02 数组的持久化 [听懂]

也就是写入到文件

 

"强调

1.数组转换成字符串  ---> joined

2.字符串拆分成数组  ---> separated

"随堂代码/02 数组的持久化/数组和字符串

int main(int argc, const char * argv[]) {

    

    MKPerson * xiaoyue1 = [MKPerson new];

    MKPerson * xiaoyue2 = [MKPerson new];

    MKPerson * xiaoyue3 = [MKPerson new];

    NSMutableArray *Marr = [NSMutableArray arrayWithObjects:xiaoyue1,xiaoyue2,xiaoyue3,@"123", nil];

    //数组-->字符串

    NSString *strFromMarr = [Marr componentsJoinedByString:@"^_^"];

    NSLog(@"\n%@",strFromMarr);

    

    //字符串-->数组

    NSArray *arrFromStr = [strFromMarr componentsSeparatedByString:@"^"];

    NSLog(@"\n%@",arrFromStr);

    return 0;

}

 

#program mark - 03 键值对存储数据的形式 [掌握

 

1.用数组存储对象的缺点

1>NSArray/NSMutableArray存取依赖于下标的.

2>当数组内元素变动后,原来某个元素你是知道下标的,此时下标就不确定了.

"随堂代码/03 键值对存储数据的形式/1_数组存储对象的缺点

int main(int argc, const char * argv[]) {

    NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"",@"",@"",@"",nil];

    NSLog(@"%@",arr[2]);

    //代码块开始

    [arr removeObjectAtIndex:1];

    //代码块结束

    NSLog(@"%@",arr[2]);

    return 0;

}

 

 

 

2.如何解决这个问题

 

1>数组中存储元素的时候,给每一个元素起一个别名,在使用这个元素的时候直接通过别名来获取这个元素,不通过下标

2>元素--->Value  别名--->Key

3>这种存储方式叫键值对

4>多个键值对叫字典

5>oc中字典有一个类叫做NSDictionary/NSMutableDictionary

 

 

#program mark - 04 创建NSDictionary字典数组 [掌握]

 

 

"练习

小明身高1.5m,年龄10,体重90KG,用两种方式创建字典对象存储数据

 

"随堂代码/04 创建NSDictionary字典数组/1_创建NSDictionary字典数组

 

int main(int argc, const char * argv[])

{

    

    NSDictionary *xiaomingDict1 = [NSDictionary dictionaryWithObjectsAndKeys:@"1.5m",@"height",@"90KG",@"weight",@"10",@"age", nil];

    NSLog(@"%@",xiaomingDict1);

    NSDictionary *xiaomingDict2 =  @{@"height":@"1.5m",@"weight":@"90KG",@"age":@"10"};

    NSLog(@"%@",xiaomingDict2);

    

    return 0;

}

 

#program mark - 05 取出字典数组中的数据 [掌握]

 

 

 

"练习

给你一个小明身高体重年龄的字典,用两种方式分别获取三个属性

 

int main(int argc, const char * argv[]) {

    

    NSDictionary *xiaomingDict = @{@"height":@"1.5",@"weight":@"80KG",@"age":@"10"};

    NSLog(@"%@------%@",xiaomingDict[@"height"],[xiaomingDict objectForKey:@"height"]);

    NSLog(@"%@------%@",xiaomingDict[@"weight"],[xiaomingDict objectForKey:@"weight"]);

    NSLog(@"%@------%@",xiaomingDict[@"age"],[xiaomingDict objectForKey:@"age"]);

    

    

    

    return 0;

}

 

#program mark - 06 NSDictionary字典数组的遍历 [重点掌握]

 

1.如何获取字典中键值对的个数

1>属性

@property (readonly) NSUInteger count;

2>例子

"随堂代码/06 NSDictionary字典数组的遍历/1_获取字典内键值对个数

int main(int argc, const char * argv[]) {

    

    NSDictionary *xiaomingDict = @{@"height":@"1.5",@"weight":@"80KG",@"age":@"10"};

    NSUInteger count = [xiaomingDict count];

    NSUInteger count2 = xiaomingDict.count;

    NSLog(@"%lu---%lu",count,count2);

    return 0;

}

 

 

2.不同的键值对对应key不能相同,一旦相同会出现某一个无法存储进字典

 

"随堂代码/06 NSDictionary字典数组的遍历/2_不同的键值对的的key绝对不能相同

 

int main(int argc, const char * argv[]) {

    

    NSDictionary *xiaomingDict = @{

                                   @"height":@"1.5",

                                   @"age":@"80KG",

                                   @"age":@"10"

                                   };

    NSLog(@"%@",xiaomingDict);//打印发现有一个age对应的键值对没有存储进字典

    return 0;

}

 

"随堂代码/06 NSDictionary字典数组的遍历/3_遍历

3.遍历

1>不能用普通for循环遍历

int main(int argc, const char * argv[]) {

    

    NSDictionary *xiaomingDict = @{

                                   @"height":@"1.5",

                                   @"weight":@"80KG",

                                   @"age":@"10"

                                   };

    //方式1 普通for循环

    for (int i = 0; i < xiaomingDict.count; i++ ) {

        NSLog(@"%@",xiaomingDict[i]);//报错

    }

    

    return 0;

}

 

2>增强for

int main(int argc, const char * argv[]) {

    

    NSDictionary *xiaomingDict = @{

                                   @"height":@"1.5",

                                   @"weight":@"80KG",

                                   @"age":@"10"

                                   };

    //增强for

    for (id xiaoyueKey in xiaomingDict) {//这里拿到的是key如果要打印值需要在内部获取值

        

        //        NSLog(@"%@",xiaoyueKey);

        //        NSLog(@"%@",xiaomingDict[xiaoyueKey]);

        NSLog(@"%@--%@",xiaoyueKey,[xiaomingDict objectForKey:xiaoyueKey]);

        

    }

    return 0;

}

 

3.block

int main(int argc, const char * argv[]) {

    

    NSDictionary *xiaomingDict = @{

                                   @"height":@"1.5",

                                   @"weight":@"80KG",

                                   @"age":@"10"

                                   };

    

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

        //        NSLog(@"%@",[xiaomingDict objectForKey:key]);//通过key自己打印

        NSLog(@"%@----%@",key,obj);//直接使用NSDictionary.m调用block时传给我们的key/Value打印

        if([key isEqualToString:@"weight"])//希望遍历到keyweight的键值对的时候停止遍历,基本没用

        {

            *stop = YES;

        }

        

    }];

    

    

    return 0;

}

 

 

 

 

 

 

 

 

 

 

posted @ 2016-07-26 17:38  MK王月  阅读(213)  评论(0编辑  收藏  举报