一 定义
在Objective-C中,我们可以使用c中的数字数据类型,int、float、long等。它们都是基本数据类型,而不是对象。也就是说,不能够向它们发送消息。然后,有些时候需要将这些值作为对象使用。 二 关键字
1 NSInteger int 包装类型
A 当你不知道程序运行哪种处理器架构时,你最好使用NSInteger,因为在有可能int在32位系统中只是int类型,
而在64位系统,int可能变是long型。除非不得不使用int/long型,否则推荐使用NSInteger。
B 从上面的定义可以看出NSInteger/NSUInteger是一种动态定义的类型,在不同的设备,不同的架构,
有可能是int类型,有可能是long类型。
2 NSUInteger 是无符号的,即没有负数,NSInteger是有符号的。
3 NSNumber
A 专门用来装基础类型的对象,把整型、单精度、双精度、字符型等基础类型存储为对象
B NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,装入NSArray中
C NSInteger和普通数据类型是不能被封装到数组中的
//
// main.m
// OC-NSNumber
//
// Created by wangtouwang on 15/3/20.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
//创建
NSNumber *_n1 = [[NSNumber alloc] initWithInt:];
NSNumber *_n2 = [[NSNumber alloc] initWithFloat:8.1f];
NSNumber *_n3 = [[NSNumber alloc] initWithDouble:8.1];
NSNumber *_n4 = [[NSNumber alloc] initWithChar:'A'];
NSLog(@"N1=%@ N2=%@ N3=%@ n4=%@",_n1,_n2,_n3,_n4);
//还原
// 转换为int
int n1 = [_n1 intValue];
//转换为double
double n3 = [_n3 doubleValue];
//转换为 float
float n2 = [_n2 floatValue];
// 转换为 char
char n4 = [_n4 charValue];
NSLog(@"N1=%i N2=%f N3=%f n4=%c",n1,n2,n3,n4);
//比较是否相等
NSLog(@"%@",[_n3 isEqualToNumber:_n2]?@"==":@"!=");
//比较大小
NSLog(@"%ld",[_n1 compare:_n2]); //数组可以增加NSNumber对象
NSMutableArray *_array2 = [[NSMutableArray alloc] initWithObjects:_n1,_n2,_n3,_n4, nil];
NSInteger INDEX= ;
//尝试用数组增加NSInteger对象 结果报错了,说明语法不支持
// NSMutableArray *_array1 = [[NSMutableArray alloc] initWithObjects:_n1,_n2,_n3,_n4, INDEX,nil];
// NSLog(@"%lu",[_array1 count]);
}
return ;
}

IOS 学习笔记 2015-03-20 OC-数值类型的更多相关文章

  1. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  2. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

  3. IOS学习笔记48--一些常见的IOS知识点+面试题

      IOS学习笔记48--一些常见的IOS知识点+面试题   1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...

  4. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

  5. iOS学习笔记之ARC内存管理

    iOS学习笔记之ARC内存管理 写在前面 ARC(Automatic Reference Counting),自动引用计数,是iOS中采用的一种内存管理方式. 指针变量与对象所有权 指针变量暗含了对其 ...

  6. [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading

    上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...

  7. iOS学习笔记之UITableViewController&UITableView

    iOS学习笔记之UITableViewController&UITableView 写在前面 上个月末到现在一直都在忙实验室的事情,与导师讨论之后,发现目前在实验室完成的工作还不足以写成毕业论 ...

  8. iOS学习笔记-自己动手写RESideMenu

    代码地址如下:http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars数 ...

  9. iOS学习笔记20-地图(二)MapKit框架

    一.地图开发介绍 从iOS6.0开始地图数据不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由高德地图提供的. 在iOS中进行地图开发主要有三种方式: 利用MapKit框架进行地图开发,利用这种 ...

  10. iOS学习笔记17-FMDB

    上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...

随机推荐

  1. POJ-3468 A Simple Problem with Integers Splay Tree区间练习

    题目链接:http://poj.org/problem?id=3468 以前用线段树做过,现在用Splay Tree A了,向HH.kuangbin.cxlove大牛学习了各种Splay各种操作,,, ...

  2. POJ2250 - Compromise(LCS+打印路径)

    题目大意 给定两段文本,问公共单词有多少个 题解 裸LCS... 代码: #include<iostream> #include<string> using namespace ...

  3. oracle数据库自动备份脚本

    ::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [ ...

  4. easyui datagrid用formtater的问题

    当value是一个字符串是直接使用value会提示value没有定义,这时需要转换下value,用""+value来替换就可以了.

  5. 【三支火把】---C语言const用法总结

    C语言关键字const相信对于不少C语言新手是既陌生又熟悉的,好像经常见,但是却不知道为何用,怎么用?学习至此,总结一下const的用法,使用程序来帮助你理解该关键字,希望能帮到像我一样的新手. 我看 ...

  6. 我这个IOS渣渣又来写随笔了

    我这个渣渣又来写了,哎,今天看了一篇大神面试别人的文章,感觉还有很遥远的路要走,不过没关系,还年轻,才入ios两个月,我相信自己的学习能力,加油! 博客园会是我成长的见证!

  7. 步步为营Hibernate全攻略(一)构建Hibernate框架环境

    任何一项新技术的出现都有它的必然性,Hibernate也不例外,所以在掌握Hibernate的具体应用之前我们一定先要了解Hibernate是什么?使用Hibernate会给我们的程序开发带来哪些好处 ...

  8. android102 查询,插入联系人

    package com.itheima.getcontacts; import com.itheima.getcontacts.domain.Contact; import android.net.U ...

  9. PERCONA-TOOLKIT : pt-ioprofile分析IO情况

    针对IO密集型应用做系统调优的时候,我们通常都需要知道系统cpu  内存  io 网络等系统性能 和 使用率,结合应用本身的访问量,以及 mysql的性能指标来综合分析.比如说:我们将系统压力情况分为 ...

  10. OPTIMIZE TABLE

    INNODB 不支持 mysql> OPTIMIZE TABLE t; +--------+----------+----------+----------------------------- ...