标签:des style blog http io ar color os 使用
日志:
//k-v 键值对
//key:对象标识符,不重复
//value:对象,可重复
//字典与数组的区别:数组有序,字典无序;
//分 可变字典 不可变字典
//创建三个person对象
Person *person1 = [Person PersonWithName:@"xi" age:18];
Person *person2 = [Person PersonWithName:@"aa" age:9];
Person *person3 = [Person PersonWithName:@"ao" age:3];
//将对象添加到字典中
//
NSDictionary *pDict = [[NSDictionary alloc]initWithObjectsAndKeys:
person1,@"xi",
person2,@"aa",
person3,@"ao", nil];
//便利构造器
NSDictionary *pD = [NSDictionary dictionaryWithObjects:@[person1,person2,person3] forKeys:@[@"xi",@"aa",@"ao"]];
NSLog(@"%@",pDict);
//字面量创建 不可变
NSDictionary *pDict1 = @{ @"xi":person1,
@"aa":person2,
@"ao":person3 };
NSLog(@"%@",pDict);
NSLog(@"%@",pDict);
NSLog(@"-----------------使用枚举器,便利-------------------------");
NSEnumerator *keyEnum = [pDict1 keyEnumerator];
id obj;
while ( obj = [keyEnum nextObject]) {
NSLog(@"key=%@",obj);
}
NSEnumerator *keyEnum1 = [pDict1 objectEnumerator];
id obj1;
while ( obj1 = [keyEnum1 nextObject]) {
NSLog(@"value=%@",obj1);
}
NSLog(@"-----------------使用枚举器,便利-------------------------");
//从字典取出一个对象
Person *p = [pDict objectForKey:@"xi"];
Person *p1 = pDict[@"xi"];
NSLog(@"%@",p);
NSLog(@"%@",p1);
//打印所有key
NSLog(@"key=%@",[pDict allKeys]);
//打印所有value
NSLog(@"value=%@",[pDict allValues]);
//循环的打印字典中的键值对
for (int i = 0; i < pDict.count; i++) {
//先通过循环 从allkeys 数组 取出每一个key
NSString *key = [pDict allKeys][i];
Person *p = pDict[key];
NSLog(@"key=%@,value=%@",key, p);//调用description方法
}
//可变字典
//1,创建
NSMutableDictionary *mutaDic = [NSMutableDictionary dictionary];
NSMutableDictionary *mutaDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:person1,@"ao",person2,@"xi", nil];
//2,添加
[mutaDic1 setObject:person3 forKey:@"aa"];
//3,替换
[mutaDic1 setObject:person3 forKey:@"ao"];
//4,根据key去删除value
[mutaDic1 removeObjectForKey:@"ao"];
//5,删除所有
[mutaDic1 removeAllObjects];
//
//
for (int i = 0; i < mutaDic1.count; i++) {
//先通过循环 从allkeys 数组 取出每一个key
NSString *key = [mutaDic1 allKeys][i];
Person *p = mutaDic1[key];
NSLog(@"key=%@,value=%@",key, p);//调用description方法
}
//1,创建一个数组,
NSArray *classArray = @[@"zhang",@"zhu"];
//2,创建一个数组,
NSArray *classArray1 = @[@"zha",@"zh"];
//1,创建一个大数组,
NSArray *classArrayB = @[classArray,classArray1];
NSDictionary *allClassDict = @{@"36": classArray,
@"37": classArray1,
};
NSLog(@"%@",allClassDict[@"36"][0]);
//NSset 元素唯一,无序,随机抽取,
//1,
NSSet *set = [NSSet setWithObjects:@"c",@"d",@"a", nil];
NSLog(@"%@",set);
NSLog(@"%@",[set anyObject]);
if ([set containsObject:@"c"]) {
NSLog(@"you c");
}
//1,创建 年龄数组
NSArray *ageArray = @[@12, @33, @65];
//使用数组创建集合
NSCountedSet *ageSet = [NSCountedSet setWithArray:ageArray];
//年龄是33的个数
NSLog(@"%lu",[ageSet countForObject:@33 ]);
//快速枚举
NSArray *arr = @[@"wang",@"jin",@"wei",@11];
for (id a in arr) {
NSLog(@"%@",a);
}
NSDictionary *dict = @{@"11": @"v1",
@"22": @"v2"};
//默认取key
for (NSString * key in dict) {
NSLog(@"%@",key);
}
//取value的值
for (NSString * value in [dict allValues]) {
NSLog(@"%@",value);
}
//创建一个保存年龄的数组
NSMutableArray *mArr = [NSMutableArray arrayWithObjects:@"12", @"2", @"9", @"21", nil];
for (int i = 0; i < mArr.count - 1; i++) {
for (int j = 0; j < mArr.count - 1 - i; j++) {
if ([mArr[j] intValue] > [mArr[j+1] intValue]) {
[mArr exchangeObjectAtIndex:j withObjectAtIndex:j+1];
}
}
}
NSLog(@"%@",mArr);
//默认升序
[mArr sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",mArr);
// //创建三个person对象
// Person *person1 = [Person PersonWithName:@"xi" age:18];
// Person *person2 = [Person PersonWithName:@"aa" age:19];
// Person *person3 = [Person PersonWithName:@"ao" age:38];
//
NSMutableArray *personArray = [NSMutableArray arrayWithObjects:person1, person2, person3, nil];
NSLog(@"%@",personArray);
//按年龄从小到大排序
for (int i = 0; i < personArray.count - 1; i++) {
for (int j = 0; j < personArray.count - i - 1;j++) {
if ([personArray[j] age] > [personArray[j + 1] age] ) {
[personArray exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
}
}
}
NSLog(@"%@",personArray);
NSDictionary的常见用法总结
NSArray *array1 = [NSArray arrayWithObjects:@"iphone",@"ipod",nil];
NSArray *array2 = [NSArray arrayWithObjects:@"mac",@"imac",@"mac pro",nil];
//类方法初始化自动释放
NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys:array1,@"mobile",array2,@"computers",nil];//注意用nil结束
NSLog(@"myDictionary = %@",myDictionary);
int dictSize = [myDictionary count];
//访问字典中的值
NSArray *mobile = [myDictionary objectForKey:@"mobile"];
//从一个对象获取键
NSArray *keys = [myDictionary allKeysForObject:array1];
//获取字典中所有值得一个数组
NSArray *values = [myDictionary allValues];
//快速枚举
for(id key in myDictionary)
{
NSLog(@"key: %@,value: %@",key,[myDictionary objectForKey:key]);
}
//如果字典只包含属性列表对象(NSData,NSDate,NSNumber,NSString,NSArray或NSDictionary)可以保存到文件中
NSString *filePath = [[[NSBundlemainBundle]resourcePath]stringByAppendingPathComponent:@"dict.txt"];
BOOL success = [myDictionary writeToFile:filePath atomically:YES];
//用文件填充
NSDictionary *myDict2 =[NSDictionary dictionaryWithContentsOfFile:filePath];
//可变字典
NSMutableDictionary *dictMutable = [[NSMutableDictionary alloc]initWithObjectsAndKeys:array1,@"mobile",array2,@"computer", nil];
NSString *string4 = @"stringTV";
//修改对象
[dictMutable setObject:string4 forKey:@"media"];
//删除对象
[dictMutable removeObjectForKey:@"mobile"];
//删除多个对象
NSArray *keyArray =[NSArray arrayWithObjects:@"mobile",@"computer", nil];
[dictMutable removeObjectForKey:keyArray];
//删除所有对象
[dictMutable removeAllObjects];
注: iOS 6 新的快捷初始化写法:
NSDictionary:
NSMutableDictionary:
1:基础初始化
2:为字典添加对象(键与值都是 id 接受任何类型)
3:通过键取得值对象
4:删除某个对象
标签:des style blog http io ar color os 使用
原文地址:http://www.cnblogs.com/iOS-mt/p/4108968.html