<欢迎大家增加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. 高效CSS書寫規範及CSS兼容性

    一.選擇器針對性說明 某一元素的多个规则集中,选择器的针对性越高,该规则集的权重也就越高.针对性相同的,后出现的规则集的权重更高. * {} /* a=0 b=0 c=0 d=0 -> spec ...

  2. Android Project from Existing Code 生成 R 文件错误、失败等问题解决办法 - 持续更新

    Android Project from Existing Code 生成 R 文件错误.失败等问题解决办法 - 持续更新 git  上的项目,pull下来之后用Android Project fro ...

  3. AS3聊天单行输入框图文混排完美实现

    几年前刚毕业.第一个游戏模块做的就是聊天.到如今.几个游戏写过几次聊天模块. 之前在4399做的<幻龙骑士>(又名<神骑士>),还有上周六刚上线的<疯狂的子弹>, ...

  4. AC自动机跟随Kuangbing学习笔记

    http://www.cnblogs.com/kuangbin/p/3164106.html kuangbin的博客 第一段代码基本是COPY kuangbin的.. 1.HDU 2222 Keywo ...

  5. AAC ADTS解析

    1.ADTS ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC ...

  6. 学习asp.net Identity 心得体会(连接oracle)

    asp.net Identity具体功能暂不在此细说,下面主要介绍几点连接oracle注意的事项, 1.首先下载连接oracle驱动Oracle.ManagedDataAccess.dll和Oracl ...

  7. json 去空值与缩进

    var jSetting = new Newtonsoft.Json.JsonSerializerSettings(); //忽略值为null的 jSetting.NullValueHandling ...

  8. Android中Menu的基本用法

    一. 使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资源文件必须使用<menu>标签作为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单项 ...

  9. C++程序设计实践指导1.7超长数列中n个数排序改写要求实现

    改写要求1:将以上程序改写为适合超长整数 改写要求2:将以上程序改写为适合超长数列 改写要求3:将数列中指定位置m开始的n个结点重新按降序排序 改写要求4:输出指定位置m开始的n个结点的超长整数 #i ...

  10. 第一个XAML程序

    创建win8程序的默认Xaml文件是MainPage.Xaml文件,文件的内容如下所示: <Page x:Class="App1.MainPage" xmlns=" ...