一NSNumber 类型转换

NSNumber 把基本数据类型包装成一个对象类型。NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue。

@20 等价于 [NSNumber numberWithInt:20];

NSNumber 将各种数据类型包装成NSNumber类型

@10.3 //包装小数为NSNumber

@ //包装整数 为NSNumber

@"abc" //包装字符型( NSString) 为NSNumber

@'abc' //包装字符 (NSNumber) 为NSNumber

int age = 100

@age  报错,系统会认为这是一个关键字。

@(age)  正常。()括号表示取值,表示age是一个整体。

二 int,NSInteger,NSUInteger,NSNumber

1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。

2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。

3.有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的。

NSInteger是基础类型,但是NSNumber是一个类。如果想要在NSMutableArray里存储一个数值,直接用NSInteger是不行的,比如在一个NSMutableArray里面这样用:

NSMutableArray *array = [[NSMutableArray alloc]init];

[array addObject:[NSNumber numberWithInt: 88]];   //错误

[array addObject:[NSNumber numberWithInt: @88]];  //正确

Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。

例如以下创建方法:

+ (NSNumber *) numberWithChar: (char) value;

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

+ (NSNumber *) numberWithFloat: (float) value;

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

将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:

- (char) charValue;

- (int) intValue;

- (float) floatValue;

- (BOOL) boolValue;

- (NSString *) stringValue;

例子:

NSNumber *num = [NSNumber numberWithInt:];
NSInteger integer = [num intValue];

三 NSDate

 NSDate *date = [NSDate date];
NSLog(@"%@" , date);
NSDate *date2 = [NSDate dateWithTimeInterval: sinceDate: date];
NSLog(@"%@" , date2);

第2行:打印的是0时区(格林威治时间),北京时间:东八区

第3行: 和date比较相差5秒的时间间隔 。

 NSTimeInterval seconds = [date timeIntervalSince1970];
NSLog(@"%ld" , seconds); [date timeIntervalSinceNow]

第1行: 从1970到现在是多少秒? 1970是电脑诞生的日子。

第4行: 从左面时间到现在是多少秒?

 NSDate *date3 = [NSDate date];
NSDateFormatter *formatter =[[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *str =[formatter stringFromDate:date] ;
NSLog(@"date=%@" , str);

第3行: yyyy代表年,MM代表月,dd代表日, HH代表24小时,hh代表12小时 ,mm代表分,ss代表秒。

 NSDateFormatter *formatter1 =[[NSDateFormatter alloc]init];
formatter1.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *time = @"2016-02-22 21:49:30";
NSDate *date4 = [formatter1 dateFromString:time];
NSLog(@"date4=%@" , date4);

第4行:把NSString转换成NSDate。

IOS基础之 (九) Foundation框架的更多相关文章

  1. 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary

    int main(int argc, const char * argv[]) { @autoreleasepool { //字典, 存储的内存不是连续的 用key和value进行对应(键值) //k ...

  2. IOS基础之 (八) Foundation框架

    一 常用类 NSRange 范围,NSPoint  点,NSSize /CSSize 大小,CGRect 1 NSRange 1)NSRange是一种C语言结构用来帮助描述一系列的条款,包括一个起点位 ...

  3. iOS 基础函数解析 - Foundation Functions Reference

    iOS 基础函数解析 - Foundation Functions Reference 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...

  4. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

  5. Foundation框架-NSString和NSMutableString

    可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式  2.3 从文件中 ...

  6. 《objective-c基础教程》学习笔记(九)—— Foundation框架介绍

    在之前的博文中,我们创建的项目文件的时候,默认都有引用#import <Foundation/foundation.h> 这个头文件.但是,之前我们对Foundation都没有展开介绍.这 ...

  7. iOS开发系列—Objective-C之Foundation框架

    概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底 ...

  8. iOS - OC Foundation 框架

    前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...

  9. iOS - Swift Foundation 框架

    前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...

随机推荐

  1. 当文本溢出包含的元素时加省略号之text-overflow

    text-overflow是css3的属性,用来处理文本溢出,默认裁剪处理,text-overflow属性只能用于block和inline-block元素,内联的和box,flex-flow:colu ...

  2. 谁可以说出HashMap和HashSet的相同点和不同点。

    谁可以说出HashMap和HashSet的相同点和不同点. 2011-11-15 20:46ruoshui_t | 浏览 20310 次  Perl 2011-11-15 21:17 #知道行家专业创 ...

  3. GIT 专贴

    1.官网 git-scm.com github.com 代码库 2.源码

  4. js 方法重载

    function fun1(arm1) { alert(arm1); } function fun2(arm1, arm2) { alert(arm1 + "_" + arm2); ...

  5. SQL 常见函数使用

    1.字符串转化为整型 CONVERT(INT,'字符串') 2.结果集 输出为一段字符串 SELECT STUFF((SELECT ','+A FROM tableFOR XML PATH('')), ...

  6. XXOOJL

    她的鞋子放在外面没拿进来很显眼,我们俩正抱在床上,刚做完什么也没穿,她也没擦.听到门外的脚步声.赶紧穿.她在我房间里没出声,但我父亲肯定看出来了.于是问我:母亲去哪了,然后他去找她. 太尴尬了,那晚我 ...

  7. HTTP基础(一):如何使用浏览器network查看请求和响应的信息

    一. 问题描述 HTTP作为前端开发与后开发链接的载体,其重要性不言而喻,今天我不复习关于HTTP自身的一些知识,只复习如何解读浏览器自带的的抓包工具(查看请求信息与响应信息)network. 二. ...

  8. C中的预编译宏定义

     可以用宏判断是否为ARC环境 #if _has_feature(objc_arc) #else //MRC #endif C中的预编译宏定义 -- 作者: infobillows 来源:网络 在将一 ...

  9. 第三方框架 INTULocationManager 定位的一些方法

    gitub 下载 INTULocationManager #import "INTULocationManager.h" INTULocationManager *locMgr = ...

  10. 一个Eclipse代码显示主题