Objective-C中的字典(NSDictionary)及NSNumber、NSValue的介绍

一、Objective-C中的字典(NSDictionary)

1.Objective-C中的字典(NSDictionary)

就是一个简单的key-value对,key相当于索引value相当于索引处的值,就像字典中拼音与文字的关系,字典里面的元素没有先后顺序,可以存放不同类型的数据,但不能是C语言的基本数据类型,这一点与数组相同。

2.Objective-C中字典创建

NSDictionary *dic = @{@"userName":@"pxd", @"pwd":@"123"};
NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"pxd",@"name",@"123",@"pwd",nil];////键值对必须是配对的

3.Objective-C中字典的一些操作

1.获取键值对的个数

dic1.count;

2.用key键访问字典里面某一个值 

NSString *name = [dic1 valueForKey:@"name"];

3.获取字典所有的key

NSArray *keys = [dic1 allKeys];

4.获取字典所有的value

NSArray *values = [dic1 allValues];

5.遍历字典

for (NSString *key in keys){
            NSLog(@"%@:%@", key, [dic1 objectForKey:key]);
        }

6.添加键值对

 [mDic setObject:@"pig" forKey:@"rongchang"];
 [mDic setObject:@"fish" forKey:@"wanzhou"];

7.修改或添加键值对

 [mDic setObject:@"Cow" forKey:@"rongchang"];//原key键存在时修改,不存在时添加

8.删除键值对

[mDic removeObjectForKey:@"123"];//删除key键为123的
[mDic removeAllObjects];//删除字典中所有键值对

二、NSNumber

NSNumber封装C语言的数据类型 int long char double float bool
例如:NSNumber *nb = [NSNumber numberWithInt:20];

三、NSValue

NSValue封装C语言的结构体和枚举
例如:NSRange range = NSMakeRange(0, 20);

struct CGRect {
            CGPoint origin;
            CGSize size;
         };
         
         struct CGPoint {
         CGFloat x;
         CGFloat y;
         };
         
        struct CGSize {
            CGFloat width;
            CGFloat height;
        };
         
        CGRect rect = CGRectMake(100, 100, 200, 150);
        NSValue *rectValue = [NSValue valueWithRect:rect];
        NSValue *structValue = [NSValue valueWithRange:range];
        int age = [n1 intValue];
        CGRect frame = [strValue rectValue];

NSNumber封装
 NSValue封装
             
             NSRange{
                 location,
                 length
             }
             
             CGPoint {
                 x,
                 y
             }
             
             CGSize{
                 width,
                 height
             }
             
             CGRect{
                 origin,
                 size
             }
        }

猜你喜欢

转载自blog.csdn.net/xutaoshuaiqi/article/details/81275175