黑马程序员_Foundation_NSSet,NSDictionary,NSValue,NSDate,NSNumber

来源:互联网 发布:室内温度检测软件 编辑:程序博客网 时间:2024/05/16 07:06

黑马程序员_Foundation_NSSet,NSDictionary,NSValue,NSDate,NSNumber

1NSNumber

这是一个创建oc数字对象的类

创建对象的方法

+(NSNumber *)numberWithInt:(int)value;

+(NSNumber *)numberWithDouble:(double)value;

+(NSNumber *)numberWithBool:(BOOL)value;

 

从NSNumber中取出之前包装的基本数据类型

- (char)charValue;

-(int)intValue;

-(long)longValue;

-(double)doubleValue;

-(BOOL)boolValue;

-(NSString *)stringValue;

 

2NSDate

•      NSDate可以用来表示时间, 可以进行一些常见的日期\时间处理

•      一个NSDate对象就代表一个时间

•      [NSDate date]返回的就是当前时间

 

 

  // 创建一个时间对象

    NSDate *date = [NSDate date];

    //打印出的时候是0时区的时间(北京-8区)

    NSLog(@"%@", date);

   

    NSDate *date2 = [NSDatedateWithTimeInterval:5        sinceDate:date];

   

   

    //1970开始走过的秒数

NSTimeIntervalseconds = [date2 timeIntervalSince1970];

 

   NSString *time =@"2011/09/10 18:56";

    通过NSDateFormatter创建日期,日期格式转化类

    NSDateFormatter*formatter = [[NSDateFormatter alloc] init];

   formatter.dateFormat =@"yyyy/MM/ddHH:mm";

   

    NSDate *date =[formatter dateFromString:time];

 

   

3NSValue

•      NSNumber是NSValue的子类, 但NSNumber只能包装数字类型

•      NSValue可以包装任意值

   // NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue   

    //结构体--->OC对象

    CGPoint p = CGPointMake(10,10);

    //将结构体转为Value对象

    NSValue *value = [NSValuevalueWithPoint:p];

    //value转为对应的结构体

    // [value pointValue];

    NSArray *array =@[value ];

 

 

4NSSet

集合,就是能用来容纳OC对象的容器

NSArray、NSDictionary等都是

 

 

NSSetNSArray的对比

 1>共同点

 *都是集合,都能存放多个OC对象

 *只能存放OC对象,不能存放非OC对象类型(基本数据类型:intcharfloat等,结构体,枚举)

 *本身都不可变,都有一个可变的子类

 

 2>不同点

 NSArray有顺序,NSSet没有顺序

 

//创建元素

NSMutableSet *s = [NSMutableSet set];

   

// 添加元素

[s addObject:@"hack"];

   

// 删除元素

// [s removeObject:<#(id)#>];

 

NSSet *s = [NSSet set];

 NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",@"jack2",@"jack3",nil];

  //随机拿出一个元素

 NSString *str =  [s2 anyObject];

 

 

5NSDictionary

NSDictionary翻译过来叫做字典

日常生活中, “字典的作用:通过一个拼音或者汉字,就能找到对应的详细解释

NSDictionary的作用类似:通过一个key,就能找到对应的value

NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改

NSDictionary的创建

 

   常用类

+ (instancetype)dictionary;

 

+(instancetype)dictionaryWithObject:(id)objectforKey:(id <NSCopying>)key;

 

+(instancetype)dictionaryWithObjectsAndKeys:(id)firstObject,...;

 

+(id)dictionaryWithContentsOfFile:(NSString*)path;

 

+(id)dictionaryWithContentsOfURL:(NSURL*)url;

 

 

比较

 集合

 1.NSArray\NSMutableArray

 *有序

 *快速创建(不可变):@[obj1, obj2, obj3]

 *快速访问元素:数组名[i]

 

 2.NSSet\NSMutableSet

 *无序

 

 3.NSDictionary\NSMutableDictionary

 *无序

 *快速创建(不可变):@{key1 : value1, key2 : value2}

 *快速访问元素:字典名[key]


0 0
原创粉丝点击