`

NSDictionary用法

 
阅读更多

介绍的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;
}
分享到:
sql
评论

相关推荐

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    将NSData反序列化回NSDictionary,我们可以使用`NSKeyedUnarchiver`类的`unarchiveObjectWithData:`方法。对于JSON格式的NSData,我们可以使用`JSONObjectWithData:options:error:`方法。 ```objc // 反序列化回...

    NSArray,NSSet,NSDictionary超详细用法说明

    总之,NSArray、NSSet和NSDictionary是OC和iOS开发中的基础数据结构,理解它们的用法和特性对于编写高效、可靠的代码至关重要。通过阅读“用法总结:NSArray,NSSet,NSDictionary.rtf”文件,你可以深入学习这些类的...

    NSDictionary,JSON和XML互相转换

    Objective-C提供了内置的方法来解析JSON字符串为`NSDictionary`,以及将`NSDictionary`对象转换为JSON字符串。在Swift中,可以使用`JSONSerialization`类来完成这些操作。 1. JSON到NSDictionary转换: 在...

    Objective-C中NSNumber与NSDictionary的用法简介

    即使随着Swift的兴起,Objective-C仍然是许多现有项目和开发者的主要工具,因此了解这两个类的用法至关重要。 首先,我们来看NSNumber。NSNumber是Foundation框架中的一个类,它用于封装基本数据类型,如int、...

    NSDictionary帮助文档

    `NSDictionary`提供多种构造方法,最常见的包括使用字面量语法或初始化器。例如,可以使用`@{}`语法创建一个包含键值对的字典,或者通过`NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:.....

    NSDictionary.zip

    这个压缩包“NSDictionary.zip”可能包含了一个示例项目或者教学资源,用于帮助开发者更好地理解和使用NSDictionary类。下面我们将深入探讨NSDictionary类及其在iOS开发中的应用。 首先,NSDictionary是一个不可变...

    自定义类在NSdictionary当key的示例

    在iOS和macOS开发中,我们经常使用Foundation框架中的`NSDictionary`来存储键值对数据。`NSDictionary`要求键必须是不可变的、遵循`NSCopying`协议的对象,通常是`NSString`实例。然而,有时我们需要将自定义类作为...

    (objective-c 自定义 NSDictionary 键类的注意事项)工程

    4. **性能优化**:由于`NSDictionary`使用哈希表来存储键值对,所以`hash`方法的实现对于性能至关重要。理想情况下,`hash`方法应尽可能地分散哈希值,减少冲突。这可以通过使用属性的哈希值组合来实现。 5. **内存...

    swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合

    Alamofire提供了易于理解和使用的API,支持GET、POST、PUT、DELETE等多种HTTP方法,并且可以方便地处理响应数据,包括JSON、图像等。当Alamofire获取到JSON数据后,我们可以利用ObjectMapper直接将这些数据转换为...

    ios demo,NSDictionary toJSONString,字典转换到JSONString

    转换`NSDictionary`到`JSONString`的方法在`NSJSONSerialization`类中提供。以下是在Swift和Objective-C中进行转换的代码示例: **Swift:** ```swift if let dictionary = [key: value] as? [String: Any], let ...

    NSArray,NSSet,NSEnumerator,NSDictionary及对应Mutable介绍

    在Objective-C中,集合类是数据结构的...类似的,对于NSSet、NSMutableSet、NSDictionary和NSMutableDictionary,也有相应的操作方法来实现类似的功能。理解并熟练使用这些集合类是Objective-C编程中不可或缺的一部分。

    oc.zip_NSArray_NSDictionary_去空

    除了手动过滤,还可以使用Swift的`filter`方法,但这需要项目中包含Swift代码或桥接头文件。在Objective-C中,上述方法是最常见的解决方案。 总结来说,处理`NSArray`和`NSDictionary`中的空值是一个常见的需求,...

    ios demo,JSONString to NSDictionary,字符串JSON数据转换到字典数据

    同时,`JSONObjectWithData:`方法只会返回`NSArray`或`NSDictionary`,不会返回基本数据类型,如`NSString`、`NSNumber`等。你需要自己处理这些类型。 3. **错误处理**:在解析过程中可能出现错误,如网络问题、...

    一些NSArray,NSDictionary,NSSet相关的算法知识1

    - NSDictionary是键值对的集合,提供O(1)的平均查找速度,这是因为它内部使用哈希表实现。插入、删除和查找操作通常比数组更快,但插入新键值对时需要确保键的哈希函数分布均匀,以避免哈希冲突降低性能。 4. **...

    ISMemoryCache:基于 NSDictionary 的内存缓存

    基于 NSDictionary 的内存缓存,可以识别未保留的值。 特征 线程安全。 检测未使用的对象并删除它们。 在进入背景时删除未使用的对象。 在收到内存警告时删除所有对象。 用法 设置对象 [cache setObject: object...

    IOS 开发之NSDictionary转换成JSON字符串

    这段代码使用`NSJSONSerialization`类的`dataWithJSONObject:options:error:`方法尝试将NSDictionary转换为JSON数据,然后将其转化为NSString。其中`NSJSONWritingPrettyPrinted`选项用于生成格式化的JSON字符串,...

    NSDictionary-Introspect:Objective-C 运行时属性自省

    要使用此代码,请覆盖 NSObject 的 description 方法,如下所示: - ( NSString *)description { NSDictionary *dictionary = [ NSDictionary dictionaryWithPropertiesOfObject: self ]; return [ NSString ...

    ManagedMappingObject:将NSManagedObject转换为NSDictionary(然后再次转换)

    -&gt; NSDictionary (例如JSON Model类) 将NSManagedObject转换为NSDictionary(然后再次转换)。安装 pod 'ManagedMappingObject'用法1设置NSManagedObject类。 您可以使用轻松生成。 mogenerator -m ...

Global site tag (gtag.js) - Google Analytics