一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. 如何免费访问Google?

    访问Google方法(以Mac为例) 1.替换hosts文件中的内容,文件链接如下: https://github.com/racaljk/hosts 2.下载Google浏览器,链接如下: http ...

  2. mousewheel 模拟滚动

    div{ box-sizing:border-box; } .father{ width:500px; height:400px; margin:auto; margin-top: 50px; bor ...

  3. Linux PPTP搭建

    PPPTP概述 tcp1723 1,安装 rpm -ivh ppp--14.1.rhel5.x86_64.rpm #安装ppp rpm -ivh pptpd--.rhel5.x86_64.rpm #安 ...

  4. EF code First数据迁移学习笔记(转)

    转自:http://www.cnblogs.com/icyJ/p/migration.html 准备工作 1.新建一个控制台项目, 在"程序包管理控制台"执行 Install-pa ...

  5. Viewpager模仿微信主布局的三种方式 ViewPager,Fragment,ViewPager+FragmentPagerAdapter

    效果大概就是这样 很简单 : 1 创建 top 和bottom 2主界面布局 添加top 和bottom 中间添加一个ViewPage 3 给ViewPager 和 底部View设置点击事件 源码下载 ...

  6. 关于Mvvm的一些深入理解

    在CodePlex上找到MvvmToolkit,觉得文档写得非常好,具体,全面和深入,配合源代码来看,会对Mvvm有一个深入的理解,原文链接如下 http://www.galasoft.ch/mvvm ...

  7. iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )

    在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用:

  8. MPMoviePlayerViewController的使用 (不直接将播放器放到主视图控制器,而是放到一个内部模态视图控制器中)

    其实MPMoviePlayerController如果不作为嵌入视频来播放(例如在新闻中嵌入一个视频),通常在播放时都是占满一个屏幕的,特别是在 iPhone.iTouch上.因此从iOS3.2以后苹 ...

  9. iOS开发UI篇—popoverController简单介绍(ipad)

    一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIVi ...

  10. 千万不要在JS中使用连等赋值操作

    前言 文章标题这句话原本是在国外某JavaScript规范里看到的,当时并没有引起足够的重视,直到最近一次出现了bug发现JS里的连等赋值操作的特色(坑). 网上搜索一番发现一个非常好的连等赋值的(来 ...