介绍的api
// // main.m // NSDiconary // // Created by ganchaobo on 13-4-29. // Copyright (c) 2013年 ganchaobo. All rights reserved. // #import <Foundation/Foundation.h> void CreateDic(){
//第一种创建字典,创建多个key-value
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1"
,@ "k2" ,@ "v2" ,@ "k3" ,@ "v3" , nil ];
//NSLog(@"%@",dic);
//第二种创建字典 创建一对 key-value
NSDictionary *dic1=[ NSDictionary dictionaryWithObject:@ "VV" forKey:@ "KK" ];
// NSLog(@"%@",dic1);
//第三种创建多对间值
NSArray *key=[ NSArray arrayWithObjects:@ "K1" ,@ "K2" ,@ "K3" , nil ];
NSArray *value=[ NSArray arrayWithObjects:@ "V1" ,@ "V2" ,@ "V3" , nil ];
NSDictionary *dic2=[ NSDictionary dictionaryWithObjects:key forKeys:value];
//NSLog(@"%@",dic2);
NSDictionary *dic3=[ NSDictionary dictionaryWithDictionary:dic2];
NSLog (@ "%@" ,dic3);
} void DicMethod(){
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "K1" ,@ "V1" ,@ "K2" ,@ "V2" ,@ "K3" ,@ "V3" , nil ];
NSDictionary *dic1=[ NSDictionary dictionaryWithObjectsAndKeys:@ "K1" ,@ "V1" ,@ "K1" ,@ "V2" ,@ "K3" ,@ "V3" , nil ];
NSLog (@ "%zi" ,[dic count]); //字典种右多少对key-value
NSLog (@ "%@" ,[dic allKeys]); //字典种的所有keys
NSLog (@ "%@" ,[dic allValues]); //字典中所有的values
NSLog (@ "%i" ,[dic isEqualToDictionary:dic1]);
NSLog (@ "%@" ,[dic objectForKey:@ "V1" ]);
NSArray *arr=[dic1 allKeysForObject:@ "K1" ]; //通过value找对应多个key
NSArray *arr1=[ NSArray arrayWithObjects:@ "V1" ,@ "V2" ,@ "VG" , nil ];
NSArray *ARR= [dic objectsForKeys:arr1 notFoundMarker:@ "BB" ];
NSLog (@ "%@" ,ARR);
} void WriteFile(){
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
[dic writeToFile:@ "/Users/ganchaobo/Desktop/2.txt" atomically: YES ];
} void ReadFile(){
NSDictionary *dic=[ NSDictionary dictionaryWithContentsOfFile:@ "/Users/ganchaobo/Desktop/2.txt" ];
NSLog (@ "%@" ,dic);
} //第一次遍历 void bianli1(){
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
NSArray *arr=[dic allKeys];
for ( id key in arr){
id obj=[dic objectForKey:key];
NSLog (@ "Key-->%@ value--->%@" ,key,obj);
}
} //第二种遍历 void bianli2(){
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
NSEnumerator *e= [dic keyEnumerator];
id key= nil ;
while (key=[e nextObject]){
id obj=[dic objectForKey:key];
NSLog (@ "Key-->%@ value--->%@" ,key,obj);
}
} //第三种遍历 void bianli3(){
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "k1" ,@ "v1" ,@ "k2" ,@ "v2" , nil ];
[dic enumerateKeysAndObjectsUsingBlock:^( id key, id value, BOOL *stop){
NSLog (@ "Key-->%@ value--->%@" ,key,value);
}];
} /////////key排序 void sort1(){
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "1" ,@ "AC" ,@ "3" ,@ "AF" ,@ "2" ,@ "AE" , nil ];
NSArray *arr= [dic keysSortedByValueUsingSelector: @selector (compare:)];
//通过value排序,返回key集合
NSLog (@ "%@" ,arr);
} void sort2(){
NSDictionary *dic=[ NSDictionary dictionaryWithObjectsAndKeys:@ "1" ,@ "AC" ,@ "3" ,@ "AF" ,@ "2" ,@ "AE" , nil ];
NSLog (@ "%@" ,dic);
} //NSMustableDictionary void CreateMutableDic(){
NSMutableDictionary *mutableArray=[ NSMutableDictionary dictionaryWithObjectsAndKeys:@ "V1" ,@ "K1" ,@ "V2" ,@ "K2" , nil ];
NSMutableDictionary *dic=[ NSMutableDictionary dictionaryWithObject:@ "AA" forKey:@ "BB" ];
//[mutableArray addEntriesFromDictionary:dic];//在字典种添加字典
//[mutableArray removeAllObjects];
//[mutableArray removeObjectForKey:@"K1"];//通过key移除键值对
//[mutableArray setDictionary:dic];//重新设置字典
//[mutableArray setObject:@"VV" forKey:@"K1"];//通过字典的key设置value
//[mutableArray setObject:[NSNull null] forKey:@"K1"];//通过key 设置value 为null
NSArray *arr=[ NSArray arrayWithObjects:@ "K1" ,@ "K3" , nil ];
[mutableArray removeObjectsForKeys:arr]; //删除数组中相同的key对应的key-value
NSLog (@ "%@" ,mutableArray);
} int main( int argc, const char * argv[])
{ @autoreleasepool {
CreateMutableDic();
}
return 0;
} |
相关推荐
将NSData反序列化回NSDictionary,我们可以使用`NSKeyedUnarchiver`类的`unarchiveObjectWithData:`方法。对于JSON格式的NSData,我们可以使用`JSONObjectWithData:options:error:`方法。 ```objc // 反序列化回...
总之,NSArray、NSSet和NSDictionary是OC和iOS开发中的基础数据结构,理解它们的用法和特性对于编写高效、可靠的代码至关重要。通过阅读“用法总结:NSArray,NSSet,NSDictionary.rtf”文件,你可以深入学习这些类的...
Objective-C提供了内置的方法来解析JSON字符串为`NSDictionary`,以及将`NSDictionary`对象转换为JSON字符串。在Swift中,可以使用`JSONSerialization`类来完成这些操作。 1. JSON到NSDictionary转换: 在...
即使随着Swift的兴起,Objective-C仍然是许多现有项目和开发者的主要工具,因此了解这两个类的用法至关重要。 首先,我们来看NSNumber。NSNumber是Foundation框架中的一个类,它用于封装基本数据类型,如int、...
`NSDictionary`提供多种构造方法,最常见的包括使用字面量语法或初始化器。例如,可以使用`@{}`语法创建一个包含键值对的字典,或者通过`NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:.....
这个压缩包“NSDictionary.zip”可能包含了一个示例项目或者教学资源,用于帮助开发者更好地理解和使用NSDictionary类。下面我们将深入探讨NSDictionary类及其在iOS开发中的应用。 首先,NSDictionary是一个不可变...
在iOS和macOS开发中,我们经常使用Foundation框架中的`NSDictionary`来存储键值对数据。`NSDictionary`要求键必须是不可变的、遵循`NSCopying`协议的对象,通常是`NSString`实例。然而,有时我们需要将自定义类作为...
4. **性能优化**:由于`NSDictionary`使用哈希表来存储键值对,所以`hash`方法的实现对于性能至关重要。理想情况下,`hash`方法应尽可能地分散哈希值,减少冲突。这可以通过使用属性的哈希值组合来实现。 5. **内存...
Alamofire提供了易于理解和使用的API,支持GET、POST、PUT、DELETE等多种HTTP方法,并且可以方便地处理响应数据,包括JSON、图像等。当Alamofire获取到JSON数据后,我们可以利用ObjectMapper直接将这些数据转换为...
转换`NSDictionary`到`JSONString`的方法在`NSJSONSerialization`类中提供。以下是在Swift和Objective-C中进行转换的代码示例: **Swift:** ```swift if let dictionary = [key: value] as? [String: Any], let ...
在Objective-C中,集合类是数据结构的...类似的,对于NSSet、NSMutableSet、NSDictionary和NSMutableDictionary,也有相应的操作方法来实现类似的功能。理解并熟练使用这些集合类是Objective-C编程中不可或缺的一部分。
除了手动过滤,还可以使用Swift的`filter`方法,但这需要项目中包含Swift代码或桥接头文件。在Objective-C中,上述方法是最常见的解决方案。 总结来说,处理`NSArray`和`NSDictionary`中的空值是一个常见的需求,...
同时,`JSONObjectWithData:`方法只会返回`NSArray`或`NSDictionary`,不会返回基本数据类型,如`NSString`、`NSNumber`等。你需要自己处理这些类型。 3. **错误处理**:在解析过程中可能出现错误,如网络问题、...
- NSDictionary是键值对的集合,提供O(1)的平均查找速度,这是因为它内部使用哈希表实现。插入、删除和查找操作通常比数组更快,但插入新键值对时需要确保键的哈希函数分布均匀,以避免哈希冲突降低性能。 4. **...
基于 NSDictionary 的内存缓存,可以识别未保留的值。 特征 线程安全。 检测未使用的对象并删除它们。 在进入背景时删除未使用的对象。 在收到内存警告时删除所有对象。 用法 设置对象 [cache setObject: object...
这段代码使用`NSJSONSerialization`类的`dataWithJSONObject:options:error:`方法尝试将NSDictionary转换为JSON数据,然后将其转化为NSString。其中`NSJSONWritingPrettyPrinted`选项用于生成格式化的JSON字符串,...
要使用此代码,请覆盖 NSObject 的 description 方法,如下所示: - ( NSString *)description { NSDictionary *dictionary = [ NSDictionary dictionaryWithPropertiesOfObject: self ]; return [ NSString ...
-> NSDictionary (例如JSON Model类) 将NSManagedObject转换为NSDictionary(然后再次转换)。安装 pod 'ManagedMappingObject'用法1设置NSManagedObject类。 您可以使用轻松生成。 mogenerator -m ...