如何获取nsdictionary获取key第一个value

做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便。在Objective-C语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像Java与C 只能保存声明的相同类型的数据,它的关键字为NSDictionary与NSMutableDictionary。阅读过我之前文章的朋友应该从关键字的 结构就可以看出这两个的区别。很明显前者为不可变词典,或者为可变词典。
NSDictionary *
for(NSString * akey in dict)
  //........
1.创建不可变词典
[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象,结尾必需使用nil标志结束。
[NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象,结尾必需使用nil标志结束。
[dictionary count]: 得到词典的长度单位。
[dictionary keyEnumerator]: 将词典的所有KEY储存在NSEnumerator中,NSEnumerator很像Java语言 中的迭代器,使用快速枚举可以遍历词典中所有储存KEY值。
[dictionary& objectEnumerator]: 将词典的所有value储存在NSEnumerator中,用法和上面差不多可用来遍历KEY对应储存的Value值。
[dictionary objectForKey:key]: 通过传入KEY对象可以拿到当前KEY对应储存的值。
#import &UIKit/UIKit.h&#import "MyClass.h"int main(int argc, char *argv[]){
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//添加我们的测试代码
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"雨松MOMO",@"name",@"",@"number", nil];
//得到词典的数量
int count = [dictionary count];
NSLog(@"词典的数量为: %d",count);
//得到词典中所有KEY值
NSEnumerator * enumeratorKey = [dictionary keyEnumerator];
//快速枚举遍历所有KEY的值
for (NSObject *object in enumeratorKey) {
NSLog(@"遍历KEY的值: %@",object);
//得到词典中所有Value值
NSEnumerator * enumeratorValue = [dictionary objectEnumerator];
//快速枚举遍历所有Value的值
for (NSObject *object in enumeratorValue) {
NSLog(@"遍历Value的值: %@",object);
//通过KEY找到value
NSObject *object = [dictionary objectForKey:@"name"];
if (object != nil) {
NSLog(@"通过KEY找到的value是: %@",object);
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retV}
2.创建可变词典对象
NSMutableDictionary 是NSDictionary的子类,所以继承了NSDictionary的方法。
[NSMutableDictionary dictionaryWithCapacity:10] : 创建一个可变词典初始指定它的长度为10.,动态的添加数据如果超过10这个词典长度会自动增加,所以不用担心数组越界。推荐用这种方式
[NSMutableDictionary initWithCapacity:10]& :只是初始化一个词典的长度为10。
[dictionary setObject:@"雨松MOMO" forKey:@"name"] :向可变的词典动态的添加数据 ,这里的key是name ,值是雨松MOMO。如果词典中存在这个KEY的数据则直接替换这个KEY的值。(易混的地方,慎重!)
[dictionary removeAllObjects..] : 删除掉词典中的所有数据。
[dictionary removeObjectForKey..] :删除掉词典中指定KEY的数据 。
#import &UIKit/UIKit.h&#import "MyClass.h"int main(int argc, char *argv[]){
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//添加我们的测试代码
//创建词典对象,初始化长度为10
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:10];
//向词典中动态添加数据
[dictionary setObject:@"雨松MOMO" forKey:@"name"];
[dictionary setObject:@"" forKey:@"number"];
//通过KEY找到value
NSObject *object = [dictionary objectForKey:@"name"];
if (object != nil) {
NSLog(@"通过KEY找到的value是: %@",object);
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retV}
词典类的存在就是为了解决在大量数据中查找方便,因为它是通过key直接找到value所以速度很快,避免一个个的遍历寻找造成的效率低下,善用字典类会帮你的程序提速。
文章出处:http://blog.csdn.net/xys/article/details/682373
阅读(...) 评论()
我是来自厦门的Jilon. 翁,请关注我的微博:真实的weng,或关注微信:Jilon请问NSDictionary中的Value如何去重?
[问题点数:30分,结帖人Mayday550]
请问NSDictionary中的Value如何去重?
[问题点数:30分,结帖人Mayday550]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。主题 : 如何根据NSDictionary里面一个value值,求该字典所在NSArray的下标。
级别: 侠客
UID: 348186
可可豆: 348 CB
威望: 314 点
在线时间: 109(时)
发自: Web Page
如何根据NSDictionary里面一个value值,求该字典所在NSArray的下标。&&&
把NSDictionary存到NSArray里面,如何根据字典里面的某个value求其所在NSDictionary对应的数组下标&
UID: 113399
发帖: 3616
可可豆: 5607 CB
威望: 6162 点
在线时间: 2566(时)
发自: Web Page
如果你只知道一个字段只能循环遍历 nsarray&
如果你知道NSDictionary的所有字段的话 就不需要循环遍历
级别: 侠客
UID: 348186
可可豆: 348 CB
威望: 314 点
在线时间: 109(时)
发自: Web Page
如果知道所有字段,怎么做?
UID: 113399
发帖: 3616
可可豆: 5607 CB
威望: 6162 点
在线时间: 2566(时)
发自: Web Page
NSDictionary *
[array indexOfObject:dic];
级别: 侠客
UID: 348186
可可豆: 348 CB
威望: 314 点
在线时间: 109(时)
发自: Web Page
这个是返回的下标值吗?再问,比如你知道NSDictionary里面某个key值对应的value值,你怎么确定这个NSDictionary的名字?
UID: 113399
发帖: 3616
可可豆: 5607 CB
威望: 6162 点
在线时间: 2566(时)
发自: Web Page
返回的是下标 如果你2个dic完全相同的话 只会返回第一个的下标如果你连key值都不知道 只知道value的话 用[dictionary allKeys]取出dic的所有key 然后也是遍历查找 该value对应的是哪个key的
关注本帖(如果有新回复会站内信通知您)
3*3+1 正确答案:10
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版如何从 NSDictionary 获取一个整数值_百度知道
如何从 NSDictionary 获取一个整数值
提问者采纳
这就是为什么你看到此日志输出:@&或者如果您想要使用现代目标 cint error_code = [jsonDict[@&] intValue];error_code&quot。你不能强制转换为整数的指针和期待值。int error_code = [[jsonDict valueForKey的它输出的值的指针;] intValue];error_code&quot
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区}

我要回帖

更多关于 nsdictionary 获取int 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信