在Object-c中,字典(KEY/VALUE)使用NSDictionary 和NSMutableDictionary(可变长)。使用语法如下: NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@”value1″,@”key1″,@”value2″,@”key1″,nil];
在Object-c中,字典(KEY/VALUE)使用NSDictionary 和NSMutableDictionary(可变长)。使用语法如下:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@”value1 “,@”key1 “,@”value2 “,@”key1 “,nil];//注意用nil结束
取元素的方法:
NSString *value = [myDictionary objectForKey:@”key1 “];
该写法过于繁复。所以我将C++中的map类进行了封装:
ifndef Discuz2_Maps_h
define Discuz2_Maps_h
include
大家看到,这里使用的定义比较器的方式来指定当KEY的类型是NSString时的比较方式。而这样做的原因是当查找某KEY(NSString类型) 时,这时在map比较器中的数据会出现字符长度变长的情况,且变长的那部分内容为乱码。这会造成查不到相应的结果。当然这样做会不会造成性能上的损失,目 前还没测试过。感兴趣的朋友可以帮助测试一下。
下面来看一下具体用法。
实例化对象并添加数据:
Dict
或用下面方式:
NSArray *array = [[NSArray alloc] initWithObjects:
@”One “, @”1 “, @”Two “, @”2 “, @”Three “, @”3 “, @”Four “, @”4 “,nil];
Dict
判断是否存在某数据:
BOOL iscontains = dict.contains(@”代震军3 “);
获取记录条数:
int size = dictBatch.size();
遍历:
for(std::map
或使用foreach:
__block NSString* str;
for_each(dict.begin(), dict.end(), ^(std::pair
获取指定索引记录:
NSString* result = dict[@”代震军2 “];
代码比较简单,就不多做解释了,呵呵。
好了,今天的内容就先到这里了。
原文链接:http://www.cnblogs.com/daizhj/archive/2012/11/09/2762753.html
作者: daizhj, 代震军
微博: http://weibo.com/daizhj
Tags:ios, c++, NSDictionary, NSMutableDictionary, map
Original: https://www.cnblogs.com/daizhj/archive/2012/11/09/map-ios-objectc.html
Author: 代震军
Title: 当C++遇到iOS应用开发—Dict集合
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536307/
转载文章受原作者版权保护。转载请注明原作者出处!