main.m文件
#import <Foundation/Foundation.h>
#import "Student.h"
字典的初始化
void
// NSDictionary是不可变的
NSDictionary *dict = [NSDictionarydictionaryWithObject:@"v"forKey:@"k"];
//最常用的初始化方式
dict = [NSDictionarydictionaryWithObjectsAndKeys:
@"v1", @"k1",
@"v2", @"k2",
@"v3", @"k3",nil];
NSArray *objects = [NSArrayarrayWithObjects:@"v1",@"v2", @"v3",nil];
NSArray *keys = [NSArrayarrayWithObjects:@"k1",@"k2", @"k3",nil];
NSDictionarydictionaryWithObjects:objects forKeys:keys];
NSLog(@"%@", dict);
}
字典的基本用法
void
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:
@"v1", @"k1",
@"v2", @"k2",
@"v3", @"k3",nil];
// count是计算有多少个键值对(key-value)
NSLog(@"count=%zi", dict.count);
//由于NSDictionary是不可变的,所以只能取值,而不能修改值
id obj = [dict objectForKey:@"k2"];
NSLog(@"obj=%@", obj);
//将字典写入文件中
NSString *path =@"/Users/apple/Desktop/dictionary.xml";
[dict writeToFile:pathatomically:YES];
//从文件中读取内容
dict = [NSDictionarydictionaryWithContentsOfFile:path];
NSLog(@"dict=%@", dict);
}
字典的用法
void
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:
@"v1", @"k1",
@"v2", @"k2",
@"v3", @"k3",nil];
// 返回所有的key
NSArray *keys = [dict allKeys];
//NSLog(@"keys=%@", keys);
NSArray *objects = [dict allValues];
//NSLog(@"objects=%@", objects);
// 根据多个key取出对应的多个value
// 当key找不到对应的value时,用marker参数值代替
objects = [dict objectsForKeys:[NSArrayarrayWithObjects:@"k1",@"k2", @"k4", nil]notFoundMarker:@"not-found"];
NSLog(@"objects=%@", objects);
}
遍历字典
void
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:
@"v1", @"k1",
@"v2", @"k2",
@"v3", @"k3",nil];
// 遍历字典的所有key
for (id keyin
id value = [dict objectForKey:key];
NSLog(@"%@=%@", key, value);
}
}
遍历字典2
void
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:
@"v1", @"k1",
@"v2", @"k2",
@"v3", @"k3",nil];
// key迭代器
NSEnumerator *enumer = [dict keyEnumerator];
id key = nil;
while ( key = [enumer nextObject]) {
id value = [dict objectForKey:key];
NSLog(@"%@=%@", key, value);
}
// 对象迭代器
// [dict objectEnumerator];
}
遍历字典3
void
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:
@"v1", @"k1",
@"v2", @"k2",
@"v3", @"k3",nil];
[dict enumerateKeysAndObjectsUsingBlock:
id key,id obj, BOOL
NSLog(@"%@=%@", key, obj);
}];
}
#pragma mark
void
Student *stu1 = [StudentstudentWithName:@"stu1"];
Student *stu2 = [StudentstudentWithName:@"stu2"];
Student *stu3 = [StudentstudentWithName:@"stu3"];
//一个对象称为字典的key或者value时,会做一次retain操作,也就是计数器会+1
NSDictionary *dict = [NSDictionarydictionaryWithObjectsAndKeys:
@"k1",
@"k2",
@"k3", nil];
//当字典被销毁时,里面的所有key和value都会做一次release操作,也就是计数器会-1
}
int main(int argc,const char
{
@autoreleasepool {
dictMemory();
}
return 0;
}
Student.h文件
#import <Foundation/Foundation.h>
@interface Student :NSObject
(nonatomic,retain) NSString *name;
+ (id)studentWithName:(NSString
@end
Student.m文件
#import "Student.h"
Student
+ (id)studentWithName:(NSString
Student *stu = [[Studentalloc] init];
name
return [stu autorelease];
}
- (void)dealloc {
NSLog(@"%@被销毁了", _name);
// 释放name
_namerelease];
superdealloc];
}
@end
OC之【NSDictionary详解】
原创wx6392bc05d177b 博主文章分类:【IOS移动端】 ©著作权
©著作权归作者所有:来自51CTO博客作者wx6392bc05d177b的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:OC之【c语言结构体】
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
linux之信号概念详解(万字详解)
linux之信号概念详解
#include linux 系统调用 -
OC中NSDictionary、NSSet得常用方法
OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法
NSMutableDictionary OC中NSDictionary -
iOS开发OC基础:OC字典NSDictionary以及NSMutableDictionary基本方法的使用
本文介绍了OC中的字典的基本使用方法,大家可以了解一下。
iOS基础 OC字典 NSDiction -
OC之【分类】
// ()代表着是一个分类// ()中的Test代表着分类的名称@interface Student (Test)// 分类只能扩展方法,不能增加成员变量- (void)test2;@end
扩展 类 ios ios开发 objective-c -
NSDictionary 详解
1、使用dictionaryWithObjectsAndKeys方法存储数据时,中间任何一个对象都不能为nil,否则它后面都对象都无法存入aFiledic
ide 数据 数据转换 javascript 存储数据