<欢迎大家增加iOS开发学习交流群:QQ529560119>

@property (readonly)NSUInteger count;

//1.利用指定的key寻找相应的value

- (id)objectForKey:(id)aKey;

//2. keyEnumerator得到一个字典的全部键值

- (NSEnumerator *)keyEnumerator;

//3.初始化字典

- (instancetype)initNS_DESIGNATED_INITIALIZER;

//4.条件编译依据不同情况来初始化字典

#if TARGET_OS_WIN32

- (instancetype)initWithObjects:(constid [])objects forKeys:(constid
[])keys count:(NSUInteger)cnt;

#else

- (instancetype)initWithObjects:(constid [])objects forKeys:(constid
<NSCopying> [])keys count:(NSUInteger)cntNS_DESIGNATED_INITIALIZER;

#endif

- (instancetype)initWithCoder:(NSCoder *)aDecoderNS_DESIGNATED_INITIALIZER;

@end

@interface NSDictionary (NSExtendedDictionary)

//5.数组全部key属性

@property (readonly,copy)
NSArray *allKeys;

//6.依据所填入的object返回相应全部的key键值

- (NSArray *)allKeysForObject:(id)anObject;

//7.属性 字典全部value

@property (readonly,copy)
NSArray *allValues;

//8.属性
字符串描写叙述

@property (readonly,copy)
NSString *description;

//9.属性
字符串描写叙述文件格式

@property (readonly,copy)
NSString *descriptionInStringsFileFormat;

//10.依据设置的locale进行连接数组

- (NSString *)descriptionWithLocale:(id)locale;

//11.依据设置的locale进行连接数组

- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level;

//12.推断字典是否相等

- (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary;

//13.得到一个字典的全部values

- (NSEnumerator *)objectEnumerator;

//14.字典将某个特定的数组作为key值传进去得到相应的value,假设某个key找不到相应的key,就用notFoundMarker提前设定的值取代

- (NSArray *)objectsForKeys:(NSArray *)keys notFoundMarker:(id)marker;

//NSDictionary *dic=[NSDictionarydictionaryWithObjectsAndKeys:@"K1",@"V1",@"K2",@"V2",@"K3",@"V3",nil];

//NSArray *arr1=[NSArrayarrayWithObjects:@"V1",@"V2",@"VG",nil];

//NSArray *ARR= [dicobjectsForKeys:arr1
notFoundMarker:@"BB"];

//NSLog(@"測试測试%@",ARR);

//打印:

//2015-06-08 11:30:54.139 NSDictionary[1624:64989]測试測试(

   //K1,

   //BB,

   //BB

//)

//15.将字典写进特定的路径path

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

- (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;//
the atomically flag is ignored if url of a type that cannot be written atomically.

//16.字典依照value的大小顺序来对keys键值进行排序(通过value排序,返回key集合)

- (NSArray *)keysSortedByValueUsingSelector:(SEL)comparator;

//NSDictionary *dic1=[NSDictionarydictionaryWithObjectsAndKeys:@"4",@"A",@"6",@"C",@"5",@"B",nil];

//NSArray *arr2= [dic1keysSortedByValueUsingSelector:@selector(compare:)];

//NSLog(@"奇葩奇葩%@",arr2);

//2015-06-08 14:41:59.152 NSDictionary[2749:117502]奇葩奇葩(

   //A,

   //B,

   //C

//)

//17.

- (void)getObjects:(id__unsafe_unretained [])objects andKeys:(id__unsafe_unretained
[])keys;

//18.

- (_8,_0);

//19.利用block对字典进行遍历

- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key,id
obj, _6,_0);

//样例:

NSDictionary *dic = [NSDictionarydictionaryWithObjects:@[@"1",@"2",@"3"]forKeys:@[@"one",@"two",@"three"]];

NSString *stopKey =
@"two";

__block
BOOL stopEarly =NO;

[dicenumerateKeysAndObjectsUsingBlock:^(id key,id obj,
BOOL *stop) {

NSLog(@"%@,%@",key,obj);

//訪问对象类型变量

if ([key
isEqualToString:stopKey]) {

*stop =YES;

//訪问__block表识的局部类型变量

stopEarly =YES;

//直接訪问属性

NSLog(@"self.name = tom");

;

}

}];

//输出:

2015-06-08 15:19:09.608 NSDictionary[3035:136164] one,1

2015-06-08 15:19:09.609 NSDictionary[3035:136164] two,2

2015-06-08 15:19:09.609 NSDictionary[3035:136164] self.name = tom



//20.同上一样利用block对字典进行遍历,只是加了排序的顺序选项options正反序

- (void)enumerateKeysAndObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:(void
(^)(id key, id obj,BOOL *stop))block
_6,
_0);

//21.和第16一样都是利用value对keys进行排序,仅仅只是这个加上了一个可设定的NSComparato參数条件来比較

- (_6,_0);

//样例

NSArray *sortedKeys = [dic
keysSortedByValueUsingComparator:^NSComparisonResult(id obj1,id obj2) {

if ([obj1
integerValue] > [obj2integerValue]) {

return (NSComparisonResult)NSOrderedAscending;

}

if ([obj1
integerValue] < [obj2integerValue]) {

return (NSComparisonResult)NSOrderedDescending;

}

return (NSComparisonResult)NSOrderedSame;

}];

NSLog(@"利用keysSortedByValueUsingComparator进行排序%@",sortedKeys);

//输出:

2015-06-08 16:07:12.361 NSDictionary[3420:160942]利用keysSortedByValueUsingComparator进行排序(

    one,

    three,

    two

)

//22.通过values对字典的keys进行排序。能够有排序的选择,还可加入设定的NSComparato參数条件来比較

- (_6,_0);

//23.这是一个非常好的对字典进行过滤的方法,返回keys的集合,这些keys符合參数block的约束,在block内部在特定的条件下返回yes,返回的这个集合会保留当前遍历到那个字典对象的信息

- (NSSet *)keysOfEntriesPassingTest:(BOOL (^)(id key,id
obj, _6,_0);

//样例:

NSDictionary * numsDic =@{@(2):@"second",@(4):@"first",@(1):@"thrid"};

NSSet * filteredKeys = [numsDic
keysOfEntriesPassingTest:^BOOL(id key,id obj,
BOOL *stop) {

BOOL result =
NO;

NSNumber * numKey = key;

) {

result =YES;

}

return
YES;

}];

NSLog(@"filteredKeys.description----%@",filteredKeys.description);

//打印:

2015-06-08 17:34:37.741 NSDictionary[4085:193311] filteredKeys.description----{(

    4

)}

//23.使用方法同上,添加了一个列举的选项选择

- (NSSet *)keysOfEntriesWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL
(^)(id key, id obj,BOOL *stop))predicate
_6,
_0);

@end

@interface NSDictionary (NSDictionaryCreation)

//24.高速创建一个空字典

+ (instancetype)dictionary;

//25.高速创建字典而且赋初值

+ (instancetype)dictionaryWithObject:(id)object forKey:(id <NSCopying>)key;

//26.条件编译
不同情况创建字典的几种方法

#if TARGET_OS_WIN32

+ (instancetype)dictionaryWithObjects:(constid [])objects forKeys:(constid
[])keys count:(NSUInteger)cnt;

#else

+ (instancetype)dictionaryWithObjects:(constid [])objects forKeys:(constid
<NSCopying> [])keys count:(NSUInteger)cnt;

#endif

+ (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ...NS_REQUIRES_NIL_TERMINATION;

//27.创建新字典 赋值一个字典

+ (instancetype)dictionaryWithDictionary:(NSDictionary *)dict;

//28.创建字典。通过数组赋值values和keys

+ (instancetype)dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray
*)keys;

//29.使用指定的以nil为结尾的对象与键对列表初始化列表

- (instancetype)initWithObjectsAndKeys:(id)firstObject, ...NS_REQUIRES_NIL_TERMINATION;

//30.使用还有一个字典初始化字典

- (instancetype)initWithDictionary:(NSDictionary *)otherDictionary;

//31.使用还有一个字典初始化字典,还能够为每一个对象创建新的副本

- (instancetype)initWithDictionary:(NSDictionary *)otherDictionary copyItems:(BOOL)flag;

//32.使用指定的对象与键初始化字典

- (instancetype)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys;

//33.使用本地文件的内容初始化字典

+ (NSDictionary *)dictionaryWithContentsOfFile:(NSString *)path;

//34.使用URL的内容初始化字典

+ (NSDictionary *)dictionaryWithContentsOfURL:(NSURL *)url;

//35.使用本地文件的内容初始化字典

- (NSDictionary *)initWithContentsOfFile:(NSString *)path;

//36.使用URL的内容初始化字典

- (NSDictionary *)initWithContentsOfURL:(NSURL *)url;

@end

/**************** Mutable Dictionary****************/

@interface NSMutableDictionary :NSDictionary

//37.依据相应的key删除相应的value以及自身的key,

- (void)removeObjectForKey:(id)aKey;

//38.在可变字典中,改变相应的key的value

- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;

//39.创建字典初始化

- (instancetype)initNS_DESIGNATED_INITIALIZER;

//40.初始化字典而且指定大小

- (instancetype)initWithCapacity:(NSUInteger)numItemsNS_DESIGNATED_INITIALIZER;

//41.序列化对象

- (instancetype)initWithCoder:(NSCoder *)aDecoderNS_DESIGNATED_INITIALIZER;

@end

@interface NSMutableDictionary (NSExtendedMutableDictionary)

//42.一个字典总体拼接还有一个字典的方法

- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;

//43.删除字典全部的数据

- (void)removeAllObjects;

//44.依据指定的数据keys删除相应的values

- (void)removeObjectsForKeys:(NSArray *)keyArray;

//45.给可变字典加入一组新字典

- (void)setDictionary:(NSDictionary *)otherDictionary;

//46.以数组下标的形式来訪问对应键的值

- (_8,_0);

@end

@interface NSMutableDictionary (NSMutableDictionaryCreation)

//47.高速创建可变字典而且初始化大小

+ (instancetype)dictionaryWithCapacity:(NSUInteger)numItems;

//48.高速创建可变字典通过指定的文件路径

+ (NSMutableDictionary *)dictionaryWithContentsOfFile:(NSString *)path;

//49.高速创建可变字典通过URL

+ (NSMutableDictionary *)dictionaryWithContentsOfURL:(NSURL *)url;

//50.使用本地文件的内容创建可变字典

- (NSMutableDictionary *)initWithContentsOfFile:(NSString *)path;

//51.使用URL的内容创建可变字典

- (NSMutableDictionary *)initWithContentsOfURL:(NSURL *)url;

@end

@interface NSDictionary (NSSharedKeySetDictionary)

//52.用来创建预订好的key集合。返回的值作为NSMutableDictionary的dictionaryWithSharesKeySet參数传入,能够重用key,从而节约copy操作,节省内存。

+ (_8,_0);

@end

@interface NSMutableDictionary (NSSharedKeySetDictionary)

//53.创建字典,共享键集会复用对象

+ (_8,_0);

@end


NSDictionary所有API的学习。的更多相关文章

  1. Rest API 开发 学习笔记(转)

    Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...

  2. ava如何实现系统监控、系统信息收集、sigar开源API的学习(转)

    ava如何实现系统监控.系统信息收集.sigar开源API的学习(转) 转自:http://liningjustsoso.iteye.com/blog/1254584 首先给大家介绍一个开源工具Sig ...

  3. JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

    前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...

  4. TensorLayer官方中文文档1.7.4:API – 强化学习

    API - 强化学习¶ 强化学习(增强学习)相关函数. discount_episode_rewards([rewards, gamma, mode]) Take 1D float array of ...

  5. abp学习(四)——根据入门教程(aspnetMVC Web API进一步学习)

    Introduction With AspNet MVC Web API EntityFramework and AngularJS 地址:https://aspnetboilerplate.com/ ...

  6. 前后端分离&接口API设计学习报告

    接口API设计学习报告 15331023 陈康怡 什么是API? API即Application Programming Interface.API是一种通道,负责一个程序与另一个程序的沟通.而对于w ...

  7. UIViewController所有API的学习。

    <欢迎大家加入iOS开发学习交流群:QQ529560119> /*      UIViewController is a generic controller base class tha ...

  8. Android API Guides 学习笔记---Application Fundamentals(一)

    今天开始学习google官网上的API guides ,主要读了Application Fundamentals这一章节,此章节介绍了一个App的基本组成,共包括四大部分内容. 1.      App ...

  9. ArcGIS API Reference & Flex API samples学习进度备忘

    书签:跳过:另外跳过的内容有待跟进 __________________学习资源: 1.http://help.arcgis.com/en/webapi/flex/apiref/index.html ...

随机推荐

  1. Team Formation(思维)

    Team Formation Time Limit: 3 Seconds      Memory Limit: 131072 KB For an upcoming programming contes ...

  2. 并行任务task

    http://msdn.microsoft.com/zh-cn/library/dd537609(v=vs.110).aspx http://www.cnblogs.com/yangecnu/p/So ...

  3. 基于纹理边缘抑制的轮廓和边界检测(Contour and Boundary Detection)

    基于纹理边缘抑制的轮廓和边界检测(Contour and Boundary Detection) kezunhai@gmail.com http://blog.csdn.net/kezunhai 一幅 ...

  4. Velocity.js发布:更快的动画切换速度

    Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的$.animate()方法从而加快动画切换的速度.Velocity.js只有7k的大小,它不仅包含了$.animate ...

  5. 【高精度+DP】【HDU1223】 OrderCount

    Order Count Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  6. 【Java基础】static关键字相关

    static关键字特点: 随着类的加载而加载. 优先于对象存在. 被所有对象共享 可以直接被类名调用. 使用注意: 静态方法只能访问静态成员. 但非静态成员可以访问静态成员. 静态方法中不能使用thi ...

  7. 高效批量更新 sql 字段的值(从一个表向另一个表更新)

    里给出一种更高效.简洁的做法,批量更新SQL ,一句SQL就可以替代麻烦的循环过程,有MS SQLServer.Oracle.DB2下的写法--关键点:t4和t1是同一个table,primary k ...

  8. ORACLE OCP认证

    基本情况介绍 Oracle产品非常多,这里说的是Oracle数据库认证体系. Oracle数据库认证体系包括3层,分别是OCA(助理),OCP(专家),OCM(大师) 一般情况下,需一级一级认证,也就 ...

  9. Python和C#基本算法实现对比

    最近在学习python,很多入门的例子又写了一遍,基本上是C#和Python都写了一遍,对比发现语言真是相通啊,只是语法不同而已. python开发也是用的VS,很好用,特别是代码段运行,选中一段py ...

  10. (转)三角函数计算,Cordic 算法入门

    由于最近要使用atan2函数,但是时间上消耗比较多,因而网上搜了一下简化的算法. 原帖地址:http://blog.csdn.net/liyuanbhu/article/details/8458769 ...