黑马程序员——NSDictionary和NSDate的使用

来源:互联网 发布:java 命令行打包 编辑:程序博客网 时间:2024/06/08 18:47

黑马程序员——OC基础---NSDictionary

------- android培训ios培训、期待与您交流! ----------

0.NSDictionary

  创建1

  NSDictionary*dic = [NSDictionary dictionarywithobject:@jackforKey:@” name];

  创建2

  NSDictionary*dic = [NSDictionary dictionarywithobjectAndKey:@jack”,@” name”,nil];

  含义:

  Key------------------>value

  索引----------------->文字内容

  输出:

  id  obj = [ dic objectForKey:@”name”];  // key赋值给obj

  NSLog(@”%@”, obj);   // 输出jake

 

1.以集合的形式写入Key value

  NSArray *keys = [@”name”,@”adress”];

  NSArray *objects = [@”jake”,@”北京” ]

  NSDictionary *dic = [NSDictionary dictionarywithobject:@jackforKey:@name];

  id  obj = [ dic objectForKey:@”name”];

// 通过访问key得到value的值;

NSLog(@”%@”, obj);   // 输出jake

 

2.新写法

  创建:*NSDictionary *dic = @{@”name” : @”jake”,@”adress : @”北京”};

         返回的是不可变的字典。

  输出:id obj = dict{@name}

        Dict.count 返回的是键值对数。

 

3.添加键值的办法

  NSMutableDictionary *dic = [NSMutableDictionary dictionarywithobject:@jake forKey:@name];

  [ dic  setobject : @tom forKey : @name];  // 可变字典可添加键值。

 

4.遍历方法(两种

  C语言:

NSArray *keys = [dict allKeys];   For (int i = 0; i < dict.count; i++)   {      NSString *key = keys[i];      NSString *object = dict[key];      NSLog(@”%@ = %@,key,object”);   }

   Block遍历:

[dic enumeratekeysAndobjectsUsingBlock:  ^(id key ,id obj, BOOL *stop){    NSLog(@”%@---%@”,key ,obj);    *stop = YES  // *stop为yes时,遍历停止}]

5.集合总结

  NSArray

  * 有序

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

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

  NSDictionary

  * 无序

  * 快速创建 @{key1:obj1, key2:obj2}  (不可变)
  * 快速访问 字典名[key]

 

6.NSNumber

  int转为OC对象:

   NSNumber *num = [NSNumber numberWithInt:10];

  OC对象转为int

   Int a = [num intValue];

  NSNumber之所以能够包装普通数据类型,是因为继承了NSValue

 

7.字符串类型与普通类型的相互转化

  int a = 20;

  NSString *str = [NSString strngWithFormat:@%d,a];

  int b = [str intValue];

 

8.编译器特性

  @后面跟一个数字,会自动包装成NSNumber对象。

  int age = 123;转化用()包住@age

  @a’将a包装成NSNumber对象。

 

9.结构体的包装

CGPoint p = CGPointMake(10,10);  NSValue value = [NSValue valueWithPoint:p];  NSArray *array = @[value]  //  [ value PointValue]   将对象转为对应的结构体

10.NSDate

   将时间转化为对象

  

 int main(){    // 09/10/2011    NSString *time = @"2011/09/10 18:56";        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];    formatter.dateFormat = @"yyyy/MM/dd HH:mm";        NSDate *date = [formatter dateFromString:time];    NSLog(@"%@", date);    return 0;}

将对象转化为字符串输出

int main(){    NSDate *date = [NSDate date];     // 日期格式化类    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];        // y 年  M 月  d 日    // m 分 s 秒  H (24)时  h(12)时    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";        NSString *str = [formatter stringFromDate:date];        NSLog(@"%@", str);}


 

 

   

  

  

 

 

 

 

0 0