Objective-C 学习笔记(三) Numbers/数字
2024-08-29 21:08:11
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】区别
最新文章
- Utility1:Overview
- Android线程处理之Handler
- 玩转Docker之安装篇(二)
- Android 第3方控件一览表
- Codeforces Round #253 Div2 D.Andrey and Problem 概率+贪心
- MySQL的存储过程1
- poj-3176 Cow Bowling &;&;poj-1163 The Triangle &;&; hihocoder #1037 : 数字三角形 (基础dp)
- javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)
- crm使用soap创建下拉框
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
- 房上的猫:StringBuffer类
- 添加“Git Bash Here”到右键菜单
- JAVA 第1课
- 构造 this super
- C#HTTP请求之POST请求和GET请求
- 3 快速创建SpringBoot项目
- 设置nginx和php-fpm更改上传文件大小限制
- windows下修改memcached服务的端口号
- 使用JDBC插入数据到ORACLE,使用标识列自增列
- Android 开发工具类 06_NetUtils
热门文章
- 访问https请求出现警告,去掉警告的方法
- lambda架构简介
- linux-修改pip源
- Windows下测量cpu利用率的类
- 潜类别模型(Latent Class Modeling)
- Spring security 3.1 +JSF 2.0 . problem with annotating methods in ManagedBeans?
- dubbo 提供者 ip不对
- Hadoop之MapReduce学习笔记(二)
- 获取set()和push()方法向值栈放的数据
- jquery text() html() val()