[NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象,结尾必需使用nil标志结束。 的子类,所以继承了NSDictionary的方法。 在 Foundation 框架中的集合类—NSArray, NSDictionary 以及 NSSet—就采用了这个协议,就像 NSEnumerator. 例如,NSDictionary 以及 Core Data 类, NSManagedObjectModel 提供了对快速迭代的支持; NSDictionary 枚举它的键, NSManagedObjectModel 快速枚举的使用 下面的例子向我们展示了如何 NSArray 和 NSDictionary 对象是如何使用快速枚举的.
NSDictionary基本用法 //创建 NSDictionary *dic = [NSDictionary dictionaryWithObject:@"value" forKey: @"key"]; NSLog(@"%@",dic[@"key"]); NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys :@"value",@"key",@"A",@"a",@"B",@"b",@"C",@"c", nil]; NSLog(@"%@",dic1[@"key"]); NSDictionary writeToFile:@"/Users/soso/Desktop/demo1/NSArray/demo.plist" atomically:YES]; NSLog(@"%d",flag); NSDictionary *dic3 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/soso/Desktop/demo1/NSArray/demo.plist"];
NSDictionary 一个字典存储任意的对象键值对。 NSDictionary中的键是被拷贝的并且需要是恒定的。如果在一个键在被用于在字典中放入一个值后被改变,那么这个值可能就会变得无法获取了。 一个有趣的细节,在NSDictionary中键是被拷贝的,而在使用一个toll-free桥接的CFDictionary时却只被retain。 4. iOS 构建缓存时选 NSCache 而非NSDictionary 当系统资源将要耗尽时,NSCache可以自动删减缓存。 因此NSCache对象不会自动拷贝键,所以在键不支持拷贝操作的情况下,该类比字典用起来更方便 NScache是线程安全的,NSDictionary不是。
NSString *objectId; NSDictionary *userDic = @{ @”11″:@”aaa”,@”22″:@”fff”,@”33″:@”已知道的value“,@”44″:
NSDictionary类简介 1. 以key-object的形式保存数据,是一个集合类(collection) 2. 词典中词条的保存是无序的 3. *dict = [NSDictionary dictionary]; //返回空的词典对象 NSLog(@"dict --> %@",[dict description]); / = [NSDictionary dictionaryWithObject:@"dict1" forKey:@"dict"]; NSLog(@"dict1 --> %@",[dict1 , @2 : @"two", @3 : @"three"}; NSDictionary *dict4_3 = @{@1 : @"one", @2 : @"two"}; NSDictionary *dict5_2 = [[NSDictionary alloc] init]; dict5_2 = [NSDictionary dictionaryWithContentsOfFile
OC中的字典——NSDictionary作用也差不多,字典中的元素是以键值对的形势存在的,键值对就像字典中的生词和页数的关系,有着一定的对应关系。OC中的字典存储对象的地址是没有顺序的。
NSDictionary 功能与用法 (1) NSDictionary 简介 NSDictionary 简介 : -- 作用 : NSDictionary 集合用于保存具有映射关系的数据, 其中保存两组数据 对象数据写入文件中; (4) NSDictionary 示例代码 NSDictionary 示例代码 : -- NSDictionary+toString.h : // // NSDictionary NSDictionary key 排序 (1) NSDictionary Key 排序简介 NSDictionary 排序方法 : -- "keysSortedByValueUsingSelector NSDictionary 功能与用法 (1) NSDictionary 简介 NSDictionary 简介 : -- 作用 : NSDictionary 集合用于保存具有映射关系的数据, 其中保存两组数据 对象数据写入文件中; (4) NSDictionary 示例代码 NSDictionary 示例代码 : -- NSDictionary+toString.h : // // NSDictionary
数据结构选型: 数组:查询复杂度O(N) NSArray 哈希表:查询复杂度O(1) NSSet NSDictionary 1. 2.2 NSDictionary方案 实验代码 - (NSMutableSet *)sectionUrlDict { if(!
NSDictionary 1.NSDictionar介绍 Dictionary翻译过来叫做"字典" 日常生活中,“字典”的作用:通过一个拼音或者汉字,就能找到对应的详细解释 NSDictionary的作用类似 :通过一个键(key),就能找到对应的值(value) NSDictionary中的键(key)是单值,通常是字符串,也可以是其他对象类型 NSDictionary中和键(key)关联的值(value) NSDictionary创建和获取简写 以前NSDictionary创建方式 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys NSDictionary和NSArray对比 1. NSDictionary和NSArray的区别 NSArray是有序的,NSDictionary是无序的 NSArray是通过下标访问元素,NSDictionary是通过key访问元素 2.
[NSDictionary dictionaryWithObjectsAndKeys:v1,k1,v2,k2 nil]; @{k1:v1,k2:v2}; 6. [NSDictionary] NSDictionary *dict; dict = @{}; //空字典 dict = @{ k1 : o1 }; //包括一个键值对的字典 替换原有写法:[array replaceObjectAtIndex:i withObject:newObj]; NSDictionary NSDictionary *dict = @{ k1 = @{ k1 : o1, k2 : o2, k3 : o3 }; //包括多个键值对的字典 4.3 NSDictionary NSDictionary *dict; 替换原有写法:[array replaceObjectAtIndex:i withObject:newObj]; 5.2 NSDictionary NSDictionary
Object-C 语言merge两个字典对象 - (id)mutableDictionaryCopyIfNeeded:(id)dictObj { if ([dictObj isKindOfClass:[NSDictionary ]; } return dictObj; } /** 合并两个字典 @param dict 被合并的字典 */ - (void)mergingWithDictionary:(NSDictionary localObj = [self mutableDictionaryCopyIfNeeded:[self objectForKey:key]]; if ([obj isKindOfClass:[NSDictionary [localObj isKindOfClass:[NSMutableDictionary class]]) { // Recursive merge for NSDictionary /** 合并两个字典 @param dict 被合并的字典 @param ignoredKey 忽略的Key */ - (void)mergingWithDictionary:(NSDictionary
使用block时,很容易导致“保留环” 第一种 #import <Foundation/Foundation.h> typedef void(^dosomethingBlock)(NSDictionary interface ViewController () @property (nonatomic,strong) Student *stu; @property (nonatomic,strong) NSDictionary void)viewDidLoad { [super viewDidLoad]; _stu = [[Student alloc]init]; [_stu startBlock:^(NSDictionary 修改这个bug,只需要清掉其中一个引用即可 _stu = [[Student alloc]init]; [_stu startBlock:^(NSDictionary *dic) { key"]); _stu = nil; }]; [_stu callBackData]; 第二种 typedef void(^dosomethingBlock)(NSDictionary
attributedString = [[NSMutableAttributedString alloc]init]; 设置字体格式和大小 NSString *str0 = @"设置字体格式和大小"; NSDictionary dictAttr0]; [attributedString appendAttributedString:attr0]; 设置字体颜色 NSString *str1 = @"\n设置字体颜色\n"; NSDictionary */ NSString *str3 = @"fly"; NSDictionary *dictAttr3 = @{NSFontAttributeName:[UIFont fontWithName: 并可以将Style和Pattern相互 取与 获取不同的效果 */ NSString *str51 = @"\n设置删除线为细单实线,颜色为红色"; NSDictionary *dictAttr51 设置中间部分颜色可以使用 NSForegroundColorAttributeName 属性来进行 */ NSString *str6 = @"设置笔画宽度和填充颜色\n"; NSDictionary
interface Target_Commons : NSObject // 自定义push方法 - (UIViewController *)Action_Push_CommonController:(NSDictionary Parameter.h" #import "UIViewController+Block.h" #import <objc/runtime.h> typedef void (^callBlock)(NSDictionary @implementation Target_Commons // 自定义push方法 - (UIViewController *)Action_Push_CommonController:(NSDictionary = nil){ controller.backBlock = ^(NSDictionary * _Nonnull parameter) { callback(parameter objc_setAssociatedObject(self, PARAMETER_KEY, parameter, OBJC_ASSOCIATION_COPY_NONATOMIC); } - (NSDictionary
implementation PlatformRouterImp #pragma mark - Boost 1.5- (void)open:(NSString *)name urlParams:(NSDictionary *)params exts:(NSDictionary *)exts completion:(void (^)(BOOL))completion{ BOOL animated = animated:animated]; if(completion) completion(YES);} - (void)present:(NSString *)name urlParams:(NSDictionary *)params exts:(NSDictionary *)exts completion:(void (^)(BOOL))completion{ BOOL animated = *)result exts:(NSDictionary *)exts completion:(void (^)(BOOL))completion{ BOOL animated
*) pars callback:(ZJAFNetworkingBlock) callback; + (void)getWithUrl:(NSString *) url pars:(NSDictionary NSString *) auth callback:(ZJAFNetworkingBlock) callback; + (void)postWithUrl:(NSString *) url pars:(NSDictionary *) pars callback:(ZJAFNetworkingBlock) callback; + (void)postWithUrl:(NSString *) url pars:(NSDictionary callback(false,nil,error); }]; } + (void)postWithUrl:(NSString *)url pars:(NSDictionary callback(false,nil,error); }]; } + (void)postWithUrl:(NSString *)url pars:(NSDictionary
; for (int i = 0; i< arr.count;i++) { NSLog(@"arrayContent--%@",arr[i]); } // NSDictionary (无序) NSDictionary *dic = @{@"1":@"1",@"2":@"2",@"3":@"3"}; for(int i = 0; i< dic.count;i++) = nil) { NSLog(@"str:%@",objectArr); } //NSDictionary(无序) NSDictionary *dic = @{@"1 NSDictionary *dic = @{@"1":@"1",@"2":@"2",@"3":@"3"}; for (NSString *key in dic) { NSString NSDictionary *dic = @{@"1":@"1",@"2":@"2",@"3":@"3"}; [dic enumerateKeysAndObjectsUsingBlock:^(id
其实现了NSArray和NSDictionary中的所有方法,并且支持KVC与KVO。 M13OederedDictionary中提供的方法包括: 1.创建与初始化。 创建实例对象 + (instancetype)orderedDictionaryWithDictionary:(NSDictionary M13Generics(KeyType, ObjectType) 对象来进行初始化 - (instancetype)initWithContentsOfDictionary:(NSDictionary M13Generics(KeyType, ObjectType) 对象 - (NSDictionary M13Generics(KeyType, ObjectType) *)entryAtIndex:(NSUInteger)index; //通过一组下标获取一组元素的值 来获取某个元素的下标 找不到会返回NSNotFound - (NSUInteger)indexOfEntry:(NSDictionary M13Generics(KeyType, ObjectType)
在开发中,经常使用到模型,通常做法就是字典转模型 字典转模型的过程最好封装在模型内部 模型应该提供一个可以传入字典参数的构造方法 - (instancetype)initWithDic:(NSDictionary *)dic; + (instancetype)xxxWithDic:(NSDictionary *)dic; 使用字典的坏处 一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key NSString *name; @property (nonatomic,strong,readonly) NSString *icon; - (instancetype)initWithDic:(NSDictionary *)dic; + (instancetype)personWithDic:(NSDictionary *)dic; @end ---- @implementation ImageData - (instancetype )initWithDic:(NSDictionary *)dic{ if (self = [super init]) { //第一种:用字典实例化对象的成员 //
@property (nonatomic, strong) NSString *icon; /** 通过一个字典来初始化模型对象 */ - (instancetype)initWithDict:(NSDictionary *)dict; /** 通过一个字典来创建模型对象 */ + (instancetype)shopWithDict:(NSDictionary *)dict; @end 字典转模型示例 ```objc (instancetype)initWithDict:(NSDictionary *)dict { if (self = [super init]) { self.name = dict[@" name"]; self.icon = dict[@"icon"]; } return self; } (instancetype)shopWithDict:(NSDictionary *) NSBundle mainBundle] pathForResource:@"shops.plist" ofType:nil]; // 从plist文件中加载一个数组对象(这个数组中存放的都是NSDictionary