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】区别

最新文章

  1. Utility1:Overview
  2. Android线程处理之Handler
  3. 玩转Docker之安装篇(二)
  4. Android 第3方控件一览表
  5. Codeforces Round #253 Div2 D.Andrey and Problem 概率+贪心
  6. MySQL的存储过程1
  7. poj-3176 Cow Bowling &amp;&amp;poj-1163 The Triangle &amp;&amp; hihocoder #1037 : 数字三角形 (基础dp)
  8. javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)
  9. crm使用soap创建下拉框
  10. [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
  11. 房上的猫:StringBuffer类
  12. 添加“Git Bash Here”到右键菜单
  13. JAVA 第1课
  14. 构造 this super
  15. C#HTTP请求之POST请求和GET请求
  16. 3 快速创建SpringBoot项目
  17. 设置nginx和php-fpm更改上传文件大小限制
  18. windows下修改memcached服务的端口号
  19. 使用JDBC插入数据到ORACLE,使用标识列自增列
  20. Android 开发工具类 06_NetUtils

热门文章

  1. 访问https请求出现警告,去掉警告的方法
  2. lambda架构简介
  3. linux-修改pip源
  4. Windows下测量cpu利用率的类
  5. 潜类别模型(Latent Class Modeling)
  6. Spring security 3.1 +JSF 2.0 . problem with annotating methods in ManagedBeans?
  7. dubbo 提供者 ip不对
  8. Hadoop之MapReduce学习笔记(二)
  9. 获取set()和push()方法向值栈放的数据
  10. jquery text() html() val()