首页 > 编程语言 > 详细

考核6 数组和字符串 描述器排序 字典替换

时间:2016-01-09 12:26:23      阅读:129      评论:0      收藏:0      [点我收藏+]

#import <Foundation/Foundation.h>

static NSString * const kName = @"name";

static NSString * const kAge = @"age";

static NSString * const kGender = @"gender";

inline static NSMutableDictionary *CreateDict(NSString *name, NSInteger age,  BOOL isMale){

    NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithDictionary:@{kName:name,kAge :@(age),kGender :@(isMale)}];

    return dict;

}

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

    @autoreleasepool {  

        NSArray *array = @[CreateDict(@"王思聪", 27, YES),

                           CreateDict(@"范冰冰", 35, NO),

                           CreateDict(@"马云", 51, YES),

                           CreateDict(@"霍建华", 36, YES),

                           CreateDict(@"赵丽颖", 28, NO)];

        //第1题 请按照年龄的升序排序输出,输出样式为:王思聪,男性,今年27岁

//        NSArray *arr=[array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

//            if(obj1[kAge]==obj2[kAge]){

//                return NSOrderedSame;

//            }else if(obj1[kAge]>obj2[kAge]){

//                return NSOrderedDescending;

//            }else{

//                return NSOrderedAscending;

//            }

//            }

//                      ];

        //排序二 描述器

        NSSortDescriptor *kAgeWithsort=[[NSSortDescriptor alloc]initWithKey:kAge ascending:YES];

        NSArray *weer=[NSArray arrayWithObjects:kAgeWithsort, nil];

        NSArray *weer1=[array sortedArrayUsingDescriptors:weer];

        for(NSDictionary *str in weer1){

            NSInteger num=[str[kGender] integerValue];      

            if (num==YES) {

                NSLog(@" %@男性,今年%@岁",str[kName],str[kAge]);        

            }else{

                 NSLog(@"%@, 女性,今年%@岁",str[kName],str[kAge]);       

            }           

        }

        //        for (id str in arr) {

        //            NSDictionary* idc=str;

        //            NSInteger num=[idc[kGender] integerValue];

        //            if (num==YES) {

        //                NSLog(@" %@男性,今年%@岁",idc[kName],idc[kAge]);

        //            }else{

        //            NSLog(@"%@, 女性,今年%@岁",idc[kName],idc[kAge]);

        //                  }

        //        }

        // 第2题 请输入女性信息,输出样式为:范冰冰大美女,今年35岁

        for (id str in array ) {

            NSDictionary* idc=str;

            NSInteger num=[idc[kGender] integerValue];

            if (num==NO) {

                NSLog(@"%@,大美女 女性,今年%@岁",idc[kName],idc[kAge]);

            }

        }

        //第3题 请将“马云”的年龄改为41岁

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

            NSMutableDictionary *a=array[i]  ;

            if([a[kName] isEqualTo:@"马云"]){

                [a setValue:@41 forKey:kAge];

            }

        }

        for (id str in array) {

            NSDictionary* idc=str;

            NSInteger num=[idc[kGender] integerValue];

            if (num==YES) {

                NSLog(@" %@男性,今年%@岁",idc[kName],idc[kAge]);

            }else{

                NSLog(@"%@, 女性,今年%@岁",idc[kName],idc[kAge]);

            }

        }

    }

    return 0;

}

 

考核6 数组和字符串 描述器排序 字典替换

原文:http://www.cnblogs.com/j-h-t-123-n/p/5115638.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!