Objective-C Numbers/数字

Objective-C中提供了一系列的NSNumber和重要的工作方法:

+ (NSNumber *)numberWithBool:(BOOL)value 创建并返回包含给定值的NSNumber对象,将其视为BOOL。
+ (NSNumber *)numberWithChar:(char)value  
+ (NSNumber *)numberWithDouble:(double)value  
+ (NSNumber *)numberWithFloat:(float)value  
+ (NSNumber *)numberWithInt:(int)value  
+ (NSNumber *)numberWithInteger:(NSInteger)value  
- (BOOL)boolValue 以BOOL形式返回接收者的值。
- (char)charValue  
- (double)doubleValue  
- (float)floatValue  
- (NSInteger)integerValue  
- (int)intValue  
- (NSString *)stringValue 以可读的字符串的形式返回接收者的值。

下面是一个简单的例子,使用的NSNumber两个数字相乘,并返回该产品。

 #import <Foundation/Foundation.h>

 @interface SampleClass:NSObject

 - (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b;

 @end

 @implementation SampleClass

 - (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b
{
float number1 = [a floatValue];
float number2 = [b floatValue];
float product = number1 * number2;
NSNumber *result = [NSNumber numberWithFloat:product];
return result;
} @end int main()
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; SampleClass *sampleClass = [[SampleClass alloc]init];
NSNumber *a = [NSNumber numberWithFloat:10.5];
NSNumber *b = [NSNumber numberWithFloat:10.0];
NSNumber *result = [sampleClass multiplyA:a withB:b];
NSString *resultString = [result stringValue];
NSLog(@"The product is %@",resultString); [pool drain];
return ;
}

解惑:

  • [pool release]和[pool drain]的区别

    release与drain的区别是drain在有GC的环境中会引起GC回收操作,release反之。但在非GC环境中,两者相同。

  • GC == garbage collection,内存的释放采取的垃圾自动回收机制,在编程的时候不用考虑变量不用时释放内存

参考资料:

[1] 易百教程 Objective-C Numbers/数字

[2] 【pool drain】和【pool release】区别

Objective-C 学习笔记(三) Numbers/数字的更多相关文章

  1. python3学习笔记三(数字类型,字符串)

    数字(Number)类型 有四种类型:整数.布尔型.浮点数和复数 int整数 bool布尔,如True float浮点数,1.23 complex复数,1+2j.1.2+2.3j 内置的 type() ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  4. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

  5. Liunx学习笔记(三) 文件权限

    一.文件权限 1.查看文件权限 (1)文件权限 在 Linux 中对于文件有四种访问权限,列举如下: 可读取:r,Readable 可写入:w,Writable 可执行:x,Execute 无权限:- ...

  6. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  7. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  9. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

随机推荐

  1. DllMain 用法

    1.1  DllMain简介 跟exe有个main或者WinMain入口函数一样,DLL也有一个入口函数,就是DllMain.以“DllMain”为关键字,来看看MSDN帮助文档怎么介绍这个函数的.  ...

  2. mysql5.6.23安装 步骤

    1. 准备好配置文件 my.cnf 2.建立my.cnf中用到的必要的目录 3.在mysql目录下有个scripts/mysql_install_db, 执行: scripts/mysql_insta ...

  3. Linux知识温习

    进程间通信(IPC)介绍 mmap - 用户空间与内核空间 linux 进程地址空间的一步步探究 mmap 还是 shmget ? linux C/C++服务器后台开发面试题总结 Trie树详解及其应 ...

  4. PG自动化测试

    安装软件包 yum groupinstall "Development Tools" yum install zlib-devel tcl-devel readline-devel ...

  5. ubuntu sudo apt-get update与sudo apt-get upgrade的作用及区别,以及python pip的安装

    在UBUNTU下,我们维护一个源列表,源列表里面都是一些网址信息,这每一条网址就是一个源,这个地址指向的数据标识着这台源服务器上有哪些软件可以安装使用.编辑源命令: sudo gedit /etc/a ...

  6. leetcode203

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  7. MS SQL Server 无法添加、更新或删除从msx服务器上发起的作业(或其步骤或调度)

    因为 服务器 的名字 更改过 use   msdb     go         SP_CONFIGURE   'ALLOW UPDATES',1   RECONFIGURE   WITH   OVE ...

  8. Redis 哨兵模式 带密码单机

    语法 https://segmentfault.com/a/1190000002680804 启动3台redis 6379,6380,6381 cp 多个redis.conf文件 开启daemoniz ...

  9. css常用属性初总结:font

    平时在做项目时,UX常说的一句话就是“这里的字体不对吧,字体大小也不太对,你们前端有没有按规范来”,今天,我们就一起来看看这折磨人的font属性. 字体属性font-family 允许值 系列名 初始 ...

  10. static 与 extern 关键字描述说明

    使用static 定义的变量和函数只能用于本模块即为本文件 使用extern 定义的变量和函数可以用于其他模块的引用