NSNumber的常用方法
在Objective-c中有int的数据类型,那为什么还要使用数字对象NSNumber?这是因为很多类(如NSArray)都要求使用对象,而int不是对象。
NSNumber就是数字对象我们可以使用NSNumber对象来创建和初始化不同类型的数字对象。
NSNumber
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithDouble:(double)value;
- (int)intValue;
- (double)doubleValue;
.....................(对于每个基本类型,类方法都为这它分配了一个NSNumber对象,并将其设置为指定的值,这些方法都是以numberWith开始的,之后是类型,如numberWithFloat,numberWithLong,numberWithInteger.....)
包装后取出来的方法如下:
下面就拿int做个demo:
void number() { // 将int类型的10 包装成 一个NSNumber对象 NSNumber *number = [NSNumber numberWithInt:10]; NSLog(@"number=%@", number); NSMutableArray *array = [NSMutableArray array]; // 添加数值到数组中 [array addObject:number]; // 取出来还是一个NSNumber对象,不支持自动解包(也就是不会自动转化为int类型) NSNumber *number1 = [array lastObject]; // 将NSNumber转化成int类型 int num = [number1 intValue]; NSLog(@"num=%i", num); }
NSDictionary一些常用用法
NSArray * skyAArrays = [NSArray arrayWithObjects:@"A天空1号",@"A天空2号",@"A天空3号",nil]; NSArray * skyBArrays = [NSArray arrayWithObjects:@"B天空1号",@"B天空2号",@"B天空3号",nil]; NSArray * skyCArrays = [NSArray arrayWithObjects:@"C天空1号",@"C天空2号",@"C天空3号",nil]; // NSArray * skyArray = [NSArray arrayWithObjects:skyAArrays,skyBArrays,skyCArrays, nil]; //字典中所有的key NSArray * keys = [NSArray arrayWithObjects:@"name",@"sex",@"age",nil]; //字典中所有跟key对应的value NSArray * values = [NSArray arrayWithObjects:@"liuhui",@"男",[NSNumbernumberWithInt:36],nil]; //创建字典对象方法1 NSDictionary * myDic = [[NSDictionary alloc]initWithObjects:values forKeys:keys]; NSLog(@"my dic = %@",myDic); // 创建字典对象方法2 NSDictionary * yourDic = [[NSDictionary alloc] initWithObjectsAndKeys:skyAArrays,@"A",skyBArrays,@"B",skyCArrays,@"C",nil]; NSLog(@"your dic = %@",yourDic); NSLog(@"%@",[yourDic objectForKey:@"A"]); // - (NSArray *)allKeys; 返回的是 NSArray类型,方便用 objectAtIndex取出一个个key NSLog(@"%@",[yourDic allKeys]); NSLog(@"%@",[yourDic allValues]); //添加数据(setObject 一般没有一种key才添加,有同名的key而用这种方法,会覆盖掉),注意:id key 是成对出现的 [mutableDictionary setObject:@"good lucky"forKey:@"why"]; [mutableDictionary setObject:@"bye bye" forKey:@"how"];//删除指定键值的数据 [mutableDictionary removeObjectForKey:..]; //删除所有数据 [mutableDictionary removeAllObjects];
//字典的普通遍历(无序) for (int i =0; i < [yourDic count]; i++) { NSLog(@"key = value <====> %@ = %@",[[yourDic allKeys] objectAtIndex:i],[yourDic objectForKey:[[yourDic allKeys]objectAtIndex:i]]); } // 字典的快速遍历 取出来的obj一定是key for (id obj in yourDic) { NSLog(@"%@",obj); id value = [yourDic objectForKey:obj]; NSLog(@"%@",value); }
问题内容: 用Java 最接近Objective-C的实现是什么?对我来说,看起来像,但是我对Objective-C还是很陌生。 谢谢 问题答案: 是一个类集群(请参阅《可可基础指南》中的“类集群”部分),这意味着实际的实现对您(API用户)是隐藏的。实际上,Foundation框架将在运行时根据数据量等选择适当的实现。此外,可以将任何一个作为键,而不仅是(当然,键对象的键必须是常量)。 因此,最
Objective-C是通用语言,它是在C语言编程语言之上开发的,它增加了Small Talk编程语言的功能,使Objective-C成为面向对象的语言。 它主要用于开发iOS和Mac OS X操作系统及其应用程序。 最初,Objective-C是由NeXT为其NeXTSTEP操作系统开发的,之后苹果公司使用它来开发iOS和Mac OS X,并接管了Objective-C。 1. 面向对象的编程
本文向大家介绍简介Objective-C解析XML与JSON数据格式的方法,包括了简介Objective-C解析XML与JSON数据格式的方法的使用技巧和注意事项,需要的朋友参考一下 解析XML 本文以解析本地XML为例,网络获取到的返回值只需转换成NSData型,解析是同理 需要解析的xml文件如下,users.xml 我们用一个数组来存放,最终数据结构为 解析步骤 一、声明代理 NSXMLPa
问题内容: 我正在研究Swift及其与Objective-C的区别。据我所知,Swift的当前版本相当快,甚至比Objective- C还快:请参见此处。 但是,由于大多数测试都是使用排序算法等完成的,所以我想知道,当Swift用于iOS应用开发时,它实际上是否会比Objective- C更快。任何人都可以(最好是从他们自己的经验中)启发我。 问题答案: 有一篇很棒的博客文章,特别是关于Swift
本文向大家介绍Objective-C语言简单类别,包括了Objective-C语言简单类别的使用技巧和注意事项,需要的朋友参考一下 示例 NSArray上一个名为Filter的简单类别的接口和实现,具有用于过滤数字的单个方法。 优良作法是在方法中添加前缀(PF),以确保我们不会覆盖任何将来的NSArray方法。
问题内容: 我已经搜索过Swift书,但是找不到@synchronized的Swift版本。如何在Swift中进行互斥? 问题答案: 您可以使用GCD。它比更加冗长,但可以代替: