OC基础(十四)NSNumber

一、NSNumber:

因为NSArray与NSDictionary中值能存放对象,不能存放基本数据类型,所以需要将基本数据类型转化为对象类型,就用到了NSNumber。同样的对象类型也能转化为基本数据类型,详细代码如下:

 1 #import <Foundation/Foundation.h>
 2 int main(int argc, const char * argv[]) {
 3     @autoreleasepool {
 4         int i = 10;
 5         double d = 3.1;
 6         char c = ‘5‘;
 7         BOOL b = 1;
 8         //基本数据类型转换成对象类型
 9         NSNumber *intNum = [NSNumber numberWithInt:i];
10         NSNumber *doubleNum = [NSNumber numberWithDouble:d];
11         NSNumber *charNum = [NSNumber numberWithChar:c];
12         NSNumber *boolNnum = [NSNumber numberWithBool:b];
13         NSArray *arr = @[intNum,doubleNum,charNum,boolNnum];
14         NSLog(@"%@",arr);
15         //对象类型转化为基本数据类型
16         int ii = [intNum intValue];
17         double dd = [doubleNum doubleValue];
18         char cc = [charNum charValue];
19         BOOL bb = [boolNnum boolValue];
20         NSLog(@"%d %f %c %d",ii,dd,cc,bb);
21         //基本数据类型转化为对象类型的简写
22         NSNumber *num1 = @10;
23         NSNumber *num2 = @(dd);
24         NSLog(@"%@ %@",num1,num2);
25         //注意:当@后面为变量时候一定要加括号,当为常量时候可以省略括号!
26     }
27     return 0;
28 }

输出结果:

1 2016-05-03 10:25:27.367 NSNumber与NSValue[19005:3404888] (
2     10,
3     "3.1",
4     53,
5     1
6 )
7 2016-05-03 10:25:27.368 NSNumber与NSValue[19005:3404888] 10 3.100000 5 1
8 2016-05-03 10:25:27.368 NSNumber与NSValue[19005:3404888] 10 3.1
9 Program ended with exit code: 0
时间: 2024-10-09 00:54:56

OC基础(十四)NSNumber的相关文章

Bootstrap&lt;基础十四&gt; 按钮下拉菜单

使用 Bootstrap class 向按钮添加下拉菜单.如需向按钮添加下拉菜单,只需要简单地在在一个 .btn-group 中放置按钮和下拉菜单即可.也可以使用 <span class="caret"></span> 来指示按钮作为下拉菜单. 下面的实例演示了一个基本的简单的按钮下拉菜单: <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 基本的按钮下拉菜单&

黑马程序员--oc基础第四篇

df 四:oc的基础语法

OC基础数据类型之NSNumber

假如你能够很轻松的理解NSString的定义和用法,那么NSNumber的话联想一下你就大概能够明白其中的道理和关系了. 首先你必须知道C语言的基础数据类型在OC中不是所有地方都支持使用,那么碰到例如copy等不支持使用的情况,我们就必须用OC的基本数据类型了. 那么OC的基本数据类型是什么?其实它就是将C语言的数据类型全部打包封装到了一个类里面.这个类里面各种各样的C语言基础数据类型都有,例如int,float,double等 当然OC里NSNumber的功能相对要强大很多,它不仅仅包含了C的

【非凡程序员】 OC第十四节课 (代理模式 二 闹铃响了)

这是一个人定闹钟的例子,就是人委托闹钟叫醒自己 main函数: #import <Foundation/Foundation.h>#import "Person.h"#import "Clock.h" int main(int argc, const char * argv[]) {    @autoreleasepool  {        // insert code here...        NSLog(@"Hello, World!

Scrapy基础(十四)————知乎模拟登陆

#-*-coding:utf-8 -*-__author__ = "ruoniao"__date__ = "2017/5/31 20:59" 之前我们通过爬取伯乐在线的文章,伯乐在线对爬取没有什么限制,这次爬取知乎,就有了爬取限制,首先就是登录限制:为破解限制,首先就是模拟登录 模拟登陆首先要明白的就是session和cookie机制: 简单的说(个人理解):  http是一种无状态的协议,为解决用户每次都需要输入密码登录的烦恼,也为了服务器能够记住每次请求的浏览器

【非凡程序员】 OC第十四节课 (代理模式)

1.代理模式 举个例子:有一个婴儿,他本身不会自己吃饭和洗澡等等一些事情,于是婴儿就请了一个保姆,于是婴儿和保姆之间商定了一个协议,协议中写明了保姆需要做什么事情,而保姆就是这个代理人,  即:婴儿和保姆之间有个协议,保姆继承该协议,于是保姆就需要实现该协议中的条款成为代理人.2.代理模式的关键点: A完成一件事,但是自己不能完成,于是他找个代理人B 替他完成这个事情,他们之间便有个协议(protocol),B继承该协议来完成A代理给他的事情. 3.病人找医生看病 的案例: SickProtoc

Scrapy基础(十四)————Scrapy实现知乎模拟登陆

模拟登陆大体思路见此博文,本篇文章只是将登陆在scrapy中实现而已 之前介绍过通过requests的session 会话模拟登陆:必须是session,涉及到验证码和xsrf的写入cookie验证的问题:在scrapy中不需担心此问题,因为Request会保证这是一个会话,并且自动传递cookies原理想通,因为验证码识别的问题,这里先使用cookie模拟登陆 1 # -*- coding: utf-8 -*- 2 3 import scrapy 4 import json 5 import

OC基础(四)setter和getter方法

setter和getter方法整体声明和实现虽然后面可以用@property代替,但是在后面的iOS开发中,setter方法或getter方法单独使用的频率比较高,应用比较广泛! @Interface Person:NSObject { NSString *_name; int _age; Sex _sex;      //此处枚举类型,属于基本数据类型,不用加“*” float _height; } @end 一.setter方法就是给属性赋值的方法 书写格式: 1.在类的声明中:- (voi

linux基础十四

1.tune2fs -l /dev/DEVICE     -l:查看超级块中的信息     -L lable:设定卷标     -m:预留管理员的空间     -j:如果原来的文件系统的为ext2,-j能够将其提升为ext3     -o:设定默认挂载选项     -O:调整分区特性           2.fsck 修复文件系统错误     -t: tstype     -a:自动修复错误     -r:交互式修复错误      3.修改交换分区     mkswap /dev/DEVICE

iOS开发之oc(十四)--protocol协议(2)补充

(一) protocol-限制对象 1.创建一个最纯洁的对象 2.示范出如何限制 (二)protocol--协议书写位置