黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发Android培训、期待与您交流!
----------------------

一、NSNumber

前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了。 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int、float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象。

 // 将整形包装成OC对象
    NSNumber *num1 = [NSNumber numberWithInt:120];
    // 将浮点形包装成OC对象
    NSNumber *num2 = [NSNumber numberWithDouble:0.5];

    // 把包装后的数据存放到OC数组中
    NSArray *array = @[@"年龄",num1];

    // 遍历数组
    for (id obj in array)
    {
        NSLog(@"%@", obj);
    }     ?

通过NSNumber的方法能够把所有基本数据类型包装成OC对象,再存放到OC数组中。要把NSNumber包装后的对象还原成基本数据类型,操作如下:

// 将NSNumber类型的对象还原成基本数据类型
    int age = [num1 intValue];
    double a = [num2 doubleValue];
        还可以 使用编译器特性快速包装一个基本数据:
    // 快速包装
    @120;
    @0.5;
    @NO;
//
//  main.m
//  NSNumber、NSValue和NSdate
//
//  Created by 葬花 桥 on 14-5-18.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main()
{
    // 将整形包装成OC对象
    NSNumber *num1 = [NSNumber numberWithInt:120];
    // 将浮点形包装成OC对象
    NSNumber *num2 = [NSNumber numberWithDouble:0.5];

    // 把包装后的数据存放到OC数组中
    NSArray *array = @[@"年龄",num1];

    // 遍历数组
    for (id obj in array)
    {
        NSLog(@"%@", obj);
    }

    // 将NSNumber类型的对象还原成基本数据类型
    int age = [num1 intValue];
    double a = [num2 doubleValue];

    // 快速包装
    @120;
    @0.5;
    @NO;

    // 使用快速包装,再存放到数组中
    NSArray *array2 = @[@"hello",@100, @YES, @0.3, @‘H‘];

    return 0;
} 

二、NSValue

NSValue和NSNumber相似,具体来说前者是后者的父类。NSValue可以包装复杂的基本数据类型,如结构体,枚举。

int main()
{

    // OC结构体
    CGPoint point = CGPointMake(11, 12);

    // 将结构体包装成OC对象
    NSValue *val = [NSValue valueWithPoint:point];

    // 将包装后的OC对象存放到OC数组
    NSArray *array = @[val];

    NSLog(@"%@", array);

    return 0;
}?

三、NSDate

这个类是与时间相关的,这里主要复习一下日期的格式化。

 // 创建日期对象
    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);?
    // 格式化的参数都有固定含意,不能随意写。上面是将日期格式化输出,下面再来将字符串中的日期
    // 指定日期为
    NSString *time = @"2022/05/01 13:30";

    // 创建日期格式化对象
    NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
    // 格式化日期
    formatter2.dateFormat = @"yyyy/MM/dd HH:mm";

    NSDate *date2 = [formatter2 dateFromString:time];
    NSLog(@"%@", date2); 

---------------------- IOS开发Android培训、期待与您交流! ---------------------- 详细请查看:www.itheima.com

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate,布布扣,bubuko.com

时间: 2024-08-02 02:49:22

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate的相关文章

黑马程序员_OC学习笔记之Foundation框架集合类

OC--集合类 1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等 2.OC数组是以对象的方式存在,因此在创建的时候需要为创建的对象前面加* 3.NSArray数组一旦创建就决定了是不是可变,而且永远是可变或不可变 4.NSArray数组和子类NSMutableArray的基本操作: 1>使用NS

黑马程序员-OC学习笔记之Foundatio框架集合类

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组,元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个O

黑马程序员-OC学习笔记之ARC

---------------------- IOS开发.Android培训.期待与您交流! ----------------------一.什么是ARC        ARC是自动引用计数,苹果官方在Xcode4.2及以后版本中加入的一个内存管理机制,完全取代了程序员人工的内存管理,使得程序员只须关心程序本身.使用ARC,编译器会自动在代码中加入内存管理代码,是一个编译器特性,而不是运行时特性,当然,它也和JAVA的垃圾回收不同,它的本质和手动的内存管理是一样的,只是这些代码编译器会自动添加.

黑马程序员-OC学习笔记之autorelease与自动释放池

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.autorelease autorelease与release相似,是OC中的一个对象方法.这两个方法都能把对象的引用计数器减1,但是release是一个精确的减1,对对象的操作只能在release之前进行,如果是在之后,就会出现野指针错误:而autorelease是一个不精确的引用计数器减1,当给对象发送autorelease消息时,对象就会被放到自动

黑马程序员-OC学习笔记之block

过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9426    Accepted Submission(s): 4151 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做par

黑马程序员-OC学习笔记之NSString与NSMutableString

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSString与NSMutableString 相信大家对NSString类都不陌生,它是OC中提供的字符串类,它的对象中的字符串都是不可变的,而它的子类NSMutableString类的对象中的字符串就是可变的.什么是可变与不可变呢?二者的区别就是在已经创建的一个字符串对象中,在程序中能不能更改字符串,比如拼接新的字符串,可变的可以在原字符串中更改,

黑马程序员——OC学习笔记—— Copy

黑马程序员——OC学习笔记—— Copy ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- copy 即对象拷贝 要使用对象数据而不希望修改对象时,可以使用copy copy叫做浅拷贝  mutablecopy深拷贝 copy需要遵守NSCopying协议,实现CopywithZone方法 MutableCopy也一样要遵守相应协议 注意: OC中copy复制的对象都是不可变的  mutablecopy复制的是可变副本 浅拷贝:只拷贝地址,不

黑马程序员---OC基础9【Foundation框架】【NSString介绍】【NSURL读写字符串】【NSString字符串比较】【NSString前后缀检查及搜索】【NSRange使用】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [Foundation框架] 1.Foundation框架介绍 1)Foundation框架概念 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合 以便使研发程序变得 更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation 框架 2)Foundation框架的作用 Foundation框架是Mac\iOS中其他框架的基础 Foundat

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)

一.NSNumber OC数组类NSArray,它只能存放 OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的 NSNumber就有用了,它能够把基本数据类型包装成OC对象. // 将整形包装成OC对象 NSNumber *num1 = [NSNumber numberWithInt:120]; // 将浮点形包装成OC对象 NSNumber *num2 = [NSNumber numberWithDouble: