#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //NSDictionary 不可变字典,使用键值对来存储数据,与NSArray不同,NSDictionary与NSset都是无序集合 //key 和 value 成对出现 //@"" @1 @(1) @[] @{} //方法一:常用,键值对较清晰 NSDictionary *dic1 = @{@"key1" : @"value1", @"key2" : @"value2", @"key3" : @"value3", @"key4" : @"value4", @"key5" : @"value5", @"key6" : @"value6", @"key7" : @"value7"}; //方法二、三不清晰,不利于读代码 NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil]; NSDictionary *dic3 = [[NSDictionary alloc] initWithObjects:@[@"value1", @"value2"] forKeys:@[@"key1", @"key2"]]; #pragma mark - NSDictionary读取 NSString *value1 = dic1[@"key1"];//取key1对应的value值 NSString *value2 = [dic1 objectForKey:@"key9"];//字典取值找不到的时候输出 (null) //valueForKey是键值编码(KVC)的方法,不属于字典的方法,不要使用 NSLog(@"%@", dic1); NSLog(@"%@ %@", value1, value2); NSArray *allKeys = [dic1 allKeys]; NSArray *allValues = [dic1 allValues]; //遍历整个字典(较少使用) for (NSUInteger i = 0; i < dic1.count; i++) { NSString *key = allKeys[i]; NSLog(@"%@ : %@", key, dic1[key]); } //从头到尾遍历所有key值(forin) for (NSString *key in dic1) { NSLog(@"%@ : %@", key, dic1[key]); //break;//可用break; } //PS:NSArray遍历 NSArray *array = @[@"1", @"4", @86]; for (id value in array) {//遍历array中的所有类型值 NSLog(@"%@", value); } #pragma mark - NSMutableDictionary //初始化 NSMutableDictionary *mutableDic1 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", nil]; NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionaryWithDictionary:mutableDic1]; //新增 [mutableDic1 setObject:@"value2" forKey:@"key2"]; //删除 // [mutableDic1 removeObjectForKey:@"key2"]; // [mutableDic1 removeAllObjects]; //修改 [mutableDic1 setObject:@"333" forKey:@"key1"];//字典中的key值不能重复,所有333会覆盖key1,相当于修改 //查找 NSString *string = mutableDic1[@"key2"];//没有下标,只能通过key来操作 #pragma mark - NSSet //完全无序集合 //初始化类似数组,分为可变和不可变,元素不能重复,常用来清除其他集合中的重复元素 } return 0; }
相关推荐
NSString NSArray NSDictionary 方法名释义
这个方法会将指定的根对象(这里就是我们的NSDictionary)编码并保存到一个文件中。在内存中操作时,我们可以用`dataWithJSONObject:options:error:`方法,该方法来自`NSJSONSerialization`类,将字典转换成JSON格式...
Objective-C提供了内置的方法来解析JSON字符串为`NSDictionary`,以及将`NSDictionary`对象转换为JSON字符串。在Swift中,可以使用`JSONSerialization`类来完成这些操作。 1. JSON到NSDictionary转换: 在...
`NSDictionary`提供多种构造方法,最常见的包括使用字面量语法或初始化器。例如,可以使用`@{}`语法创建一个包含键值对的字典,或者通过`NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:.....
为了使自定义类可以正确地用作`NSDictionary`的键,还需要重写`isEqual:`和`hash`方法。`isEqual:`用于比较两个对象是否相等,`hash`则返回一个整数值,使得相等的对象具有相同的哈希值。这确保了当查找键时,能够...
3. **实现`isEqual:`和`hash`方法**:为了正确地比较和定位键,`NSDictionary`依赖于`isEqual:`和`hash`方法。`isEqual:`用于确定两个键是否表示相同的实体,而`hash`方法则返回一个整数值,使得相等的对象有相同的...
NSDictionary还提供了检查键是否存在、获取所有键和值、以及遍历键值对的方法。例如,你可以使用`allKeys`来获取所有键,`allValues`来获取所有值,`count`来获取键值对的数量,`enumerateKeysAndObjectsUsingBlock:...
`swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合`这一标题揭示了一个高效的解决方案,它结合了Objective-C和Swift语言的优势,使得从JSON数据到自定义模型对象的转换变得简单...
在iOS开发中,`NSArray` 和 `NSDictionary` 是两种非常重要的数据结构,分别用于存储有序的元素集合(数组)和键值对集合(字典)。然而,在处理实际数据时,我们常常会遇到空值(nil 或 NSNull)的情况,这可能导致...
转换`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编程中不可或缺的一部分。
在iOS和Objective-C(OC)开发中,NSArray、NSSet和NSDictionary是Foundation框架中的核心数据结构,它们用于存储和管理对象。这些容器类提供了多种方法来操作和访问存储的数据,是编写应用程序时不可或缺的部分。 ...
同时,`JSONObjectWithData:`方法只会返回`NSArray`或`NSDictionary`,不会返回基本数据类型,如`NSString`、`NSNumber`等。你需要自己处理这些类型。 3. **错误处理**:在解析过程中可能出现错误,如网络问题、...
在Objective-C中,NSNumber和NSDictionary是两个非常重要的基础类,它们在编程中扮演着不可或缺的角色。即使随着Swift的兴起,Objective-C仍然是许多现有项目和开发者的主要工具,因此了解这两个类的用法至关重要。 ...
在iOS编程中,NSArray、NSDictionary和NSSet是常用的集合类,它们提供了存储和操作对象的方式。这些集合类在实际开发中扮演着重要角色,理解和优化它们的使用能够显著提高代码的性能和准确性。以下是对这些集合类...
NSObject-序列化用法要运行示例项目, pod install克隆 repo,然后从 Example 目录运行pod install 。要求安装NSObject-Serialize 可通过。 要安装它,只需将以下行添加到您的 Podfile 中: pod "NSObject-Serialize...
Swizzle NSDictionary方法: NSDictionary.swizzleMethodSelector("description", withSelector: "swizzled_Description", forClass: NSDictionary.classForCoder()) Swizzle自定义类方法: MyClass....
这段代码使用`NSJSONSerialization`类的`dataWithJSONObject:options:error:`方法尝试将NSDictionary转换为JSON数据,然后将其转化为NSString。其中`NSJSONWritingPrettyPrinted`选项用于生成格式化的JSON字符串,...