NSSet全部API学习。

/****************集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址,不过NSArray是有序的集合,NSSet是无序的集合,同时NSSet可以保证数据的唯一性,当插入相同的数据时,不会有任何效果。集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是他没有顺序****************/

/**************** Immutable Set
****************/

@interface NSSet :
NSObject <NSCopying,
NSMutableCopying, NSSecureCoding,
NSFastEnumeration>

//1.判断两个对象的值是否相逢,用来查询set里面是否有一个对象与传入对象的值相等。

- (id)member:(id)object;

//2.返回集合中所有对象到一个NSEumerator类型的对象

- (NSEnumerator *)objectEnumerator;

//3.初始化

- (instancetype)init
NS_DESIGNATED_INITIALIZER;

//4.使用一组对象初始化新分配的对象

- (instancetype)initWithObjects:(const
id [])objects count:(NSUInteger)cnt
NS_DESIGNATED_INITIALIZER;

- (instancetype)initWithCoder:(NSCoder *)aDecoder
NS_DESIGNATED_INITIALIZER;

@end

@interface NSSet (NSExtendedSet)

//5.所有对象的数组属性

@property (readonly,
copy) NSArray *allObjects;

//6.返回集合中的某个对象

- (id)anyObject;

//7.判断集合中是否有对象

- (BOOL)containsObject:(id)anObject;

//8.将集合转化成字符串,也可以通过改变description改变字符串

@property (readonly,
copy) NSString *description;

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

//9.判断在一个集合中是否可以插入另外一个集合

- (BOOL)intersectsSet:(NSSet *)otherSet;

//10.判断两个集合是否相等

- (BOOL)isEqualToSet:(NSSet *)otherSet;

//11.判断一个集合是否是另外一个集合的子集。

- (BOOL)isSubsetOfSet:(NSSet *)otherSet;

//12.让集合中的对象执行指定的方法(遍历)

- (void)makeObjectsPerformSelector:(SEL)aSelector;

- (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)argument;

//13.在集合中追加一个对象
返回set

- (NSSet *)setByAddingObject:(id)anObject
NS_AVAILABLE(10_5,
2_0);

//14.在集合中追加另外一个集合

- (NSSet *)setByAddingObjectsFromSet:(NSSet *)other
NS_AVAILABLE(10_5,
2_0);

//15.在一个集合后面追加一个数组,返回一个新的集合set

- (NSSet *)setByAddingObjectsFromArray:(NSArray *)other
NS_AVAILABLE(10_5,
2_0);

//16.遍历整个集合
执行在block中

- (void)enumerateObjectsUsingBlock:(void (^)(id obj,
BOOL *stop))block
NS_AVAILABLE(10_6,
4_0);

//17.遍历整个集合
并且有遍历选项条件

- (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:(void
(^)(id obj, BOOL *stop))block
NS_AVAILABLE(10_6,
4_0);

//18.这个方法标示着传入函数的参数是一个动态对象类型和一个布尔类型,返回一个布尔类型的代码块

- (NSSet *)objectsPassingTest:(BOOL (^)(id obj,
BOOL *stop))predicate
NS_AVAILABLE(10_6,
4_0);

//19.同上,增加了列举计算选项

- (NSSet *)objectsWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL
(^)(id obj, BOOL *stop))predicate
NS_AVAILABLE(10_6,
4_0);

@end

@interface NSSet (NSSetCreation)

//20.快速创建set

+ (instancetype)set;

//21.创建set并初始化一个对象

+ (instancetype)setWithObject:(id)object;

//22.创建set并初始化一些对象 分配大小

+ (instancetype)setWithObjects:(const
id [])objects count:(NSUInteger)cnt;

//23.创建set并初始化一些对象 以nil结尾

+ (instancetype)setWithObjects:(id)firstObj, ...
NS_REQUIRES_NIL_TERMINATION;

//24.创建set并初始化添加set

+ (instancetype)setWithSet:(NSSet *)set;

//25.创建set并初始化添加一组数组

+ (instancetype)setWithArray:(NSArray *)array;

//26.创建set并初始化添加一组数组

- (instancetype)initWithObjects:(id)firstObj, ...
NS_REQUIRES_NIL_TERMINATION;

//27.创建set并初始化添加set

- (instancetype)initWithSet:(NSSet *)set;

//28.创建set并初始化添加set 增加标识符

- (instancetype)initWithSet:(NSSet *)set copyItems:(BOOL)flag;

//29.创建set并初始化添加一组数组

- (instancetype)initWithArray:(NSArray *)array;

@end

/**************** Mutable Set
****************/

@interface NSMutableSet :
NSSet

//30.可变set添加一个对象

- (void)addObject:(id)object;

//31.移除set对象

- (void)removeObject:(id)object;

- (instancetype)initWithCoder:(NSCoder *)aDecoder
NS_DESIGNATED_INITIALIZER;

//32.初始化set

- (instancetype)init
NS_DESIGNATED_INITIALIZER;

//33.为set初始化设置大小

- (instancetype)initWithCapacity:(NSUInteger)numItems
NS_DESIGNATED_INITIALIZER;

@end

@interface NSMutableSet (NSExtendedMutableSet)

//34.为set添加对象通过数组

- (void)addObjectsFromArray:(NSArray *)array;

//35.为set插入新的set

- (void)intersectSet:(NSSet *)otherSet;

//36.从接受者中删除NSSet的左右成员

- (void)minusSet:(NSSet *)otherSet;

//37.移除set的所有对象元素

- (void)removeAllObjects;

//38.取两个集合的并集,如果给定集合中的成员不是接收集合的成员,则将这个成员添加到接收集合中。

- (void)unionSet:(NSSet *)otherSet;

//39.将otherSet替换了set并且将两个集合的交集加到set中

- (void)setSet:(NSSet *)otherSet;

@end

@interface NSMutableSet (NSMutableSetCreation)

//40.新建集合
并且设置初始化的长度

+ (instancetype)setWithCapacity:(NSUInteger)numItems;

@end

/**************** Counted Set
****************/

//41.创建集合
并且初始化长度

- (instancetype)initWithCapacity:(NSUInteger)numItems;
// designated initializer

//42.创建集合 以数组初始化对象

- (instancetype)initWithArray:(NSArray *)array;

//43.创建集合 以其他set初始化集合对象

- (instancetype)initWithSet:(NSSet *)set;

//44.统计重复集合对象的个数

- (NSUInteger)countForObject:(id)object;

//45.返回一个枚举类型

- (NSEnumerator *)objectEnumerator;

//46.添加一个对象

- (void)addObject:(id)object;

//47.移除一个对象

- (void)removeObject:(id)object;

@end

时间: 2024-10-09 19:14:34

NSSet全部API学习。的相关文章

NSSet所有API学习。

/****************集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址.只是NSArray是有序的集合,NSSet是无序的集合,同一时候NSSet能够保证数据的唯一性.当插入同样的数据时,不会有不论什么效果.集合是一种哈希表,运用散列算法.查找集合中的元素比数组速度更快,可是他没有顺序****************/ /**************** Immutable Set ****************/ @interface NSSet :

野兽的Angular Api 学习、翻译及理解 - - form.FormController、ngModel.NgModelController

野兽的ng api学习 -- form.FormController.ngModel.NgModelController form.FormController FormController跟踪所有他所控制的和嵌套表单以及他们的状态,就像有效/无效或者脏值/原始. 每个表单指令创建一个FormController实例. 方法: $addControl(); 给表单注册一个控制器. 使用了ngModelController的输入元素会在连接时自动执行. $removeControl(); 给表单注

@野兽的Angular Api 学习、翻译及理解 - - angular.module

@野兽的 ng api 学习 -- angular.module angular.module 创建一个全局的可用于检索和注入的Angular模块.所有Angular模块(Angular核心模块或者第三方模块)想要在应用里实现,都需要使用这个注入机制. 格式:angular.module(name,[requires],[configFn]); name :  string  创建的模块名称. [requires]: 字符串的数组  代表该模块依赖的其他模块列表,如果不依赖其他模块,则为空数组.

野兽的Angular Api 学习、翻译及理解 - - ngRoute Angular自带的路由

野兽的ng api学习 -- ngRoute ngRoute $routeProvider 配置路由的时候使用. 方法: when(path,route); 在$route服务里添加一个新的路由. path:该路由的路径. route:路由映射信息. controller:字符串或函数,指定控制器. controllerAs:一个用于控制器的标识符名称.. template:字符串或函数,html模板. templateUrl:字符串或函数,html模板的地址. resolve:对象,一个可选的

野兽的Angular Api 学习、翻译及理解 - - $templateCache 和 $templateRequest

野兽的ng api学习 -- $templateCache 和 $templateRequest $templateCache 第一次使用模板,它被加载到模板缓存中,以便快速检索.你可以直接将模板标签加载到缓存中,或者通过$templateCache服务. 通过script标签: <script type=”text/ng-template” id=”template.html”> <p>This is the content of the template</p> &

野兽的Angular Api 学习、翻译及理解 - - $sce 和 $sceDelegate

野兽的ng api学习 -- $sce 和 $sceDelegate $sce $sce 服务是AngularJs提供的一种严格上下文逸出服务. 严格上下文逸出服务(翻译水平有限,较渣...) 严格上下文逸出(SCE)是一种需要在一定的语境中导致AngularJS绑定值被标记为安全使用语境的模式.由用户通过ng-bind-html绑定任意HTML语句就是这方面的一个例子.我们称这些上下文语境为特权或者SCE. 下面代码是简化了的ngBindHtml实现(当然,这不是完整版ngBindHtml源码

野兽的Angular Api 学习、翻译及理解 - - $q 承诺与延迟

野兽的ng api学习 -- $q $q 一个帮助处理异步执行函数的服务.当他们做完处理时,使用它们的返回值(或异常). 受 Kris Kowa’s Q 的启发,这是一个实现promise/deferred对象的启用. $q的两种方式---这是一个更类似于Kris Kowal Q或jQuery的递延实现,另一种在一定程度上类似的ES6承诺. Deferred Api 一个被$q.defer()调用的deferred的新实例. deferred对象的目的是暴露相关承诺实例,以及APIs被执行的成功

野兽的Angular Api 学习、翻译及理解 - - $animate

野兽的ng api学习 -- $animate $animate $animate服务提供了基本的DOM操作功能如在DOM里插入.移除和移动元素,以及添加和删除类.这个服务是ngAnimate的核心服务,为CSS和Javascript提供了高档次的动画. $animate在Angular核心都是有效的,无论如何,这个服务为了支持所有动画须包含ngAnimate模块.否则,$animate只能做简单的DOM操作. 方法: enter(element,parent,after,[done]); 在D

野兽的Angular Api 学习、翻译及理解 - - ngInclude、ngTransclude

野兽的 ng api 学习 - - ngInclude.ngTransclude 这2个都是HTML DOM嵌入指令 ngInclude 读取,编译和插入外部的HTML片段. 格式:ng-include=“value”<ng-include src=”value” onload=“ex”autoscroll=“str”></ng-include>  class=”ng-include:value” value:string类型  模板id或者模板url ex:表达式,载入的时候执行