首页 > 其他分享 >NSSet全部API学习。

NSSet全部API学习。

时间:2023-02-07 15:07:01浏览次数:52  
标签:set void instancetype 学习 API NSSet 集合 id


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

Immutable Set ****************/
@interface NSSet : NSObject <NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration>
//1.判断两个对象的值是否相逢,用来查询set里面是否有一个对象与传入对象的值相等。
- (id)member:(id)object;
//2.返回集合中所有对象到一个NSEumerator类型的对象
- (NSEnumerator
//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
//5.所有对象的数组属性
(readonly, copy) NSArray *allObjects;
//6.返回集合中的某个对象
- (id)anyObject;
//7.判断集合中是否有对象
- (BOOL)containsObject:(id)anObject;
//8.将集合转化成字符串,也可以通过改变description改变字符串
(readonly, copy) NSString *description;
- (NSString *)descriptionWithLocale:(id)locale;
//9.判断在一个集合中是否可以插入另外一个集合
- (BOOL)intersectsSet:(NSSet
//10.判断两个集合是否相等
- (BOOL)isEqualToSet:(NSSet
//11.判断一个集合是否是另外一个集合的子集。
- (BOOL)isSubsetOfSet:(NSSet
//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
//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
//25.创建set并初始化添加一组数组
+ (instancetype)setWithArray:(NSArray
//26.创建set并初始化添加一组数组
- (instancetype)initWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;
//27.创建set并初始化添加set
- (instancetype)initWithSet:(NSSet
//28.创建set并初始化添加set 增加标识符
- (instancetype)initWithSet:(NSSet *)set copyItems:(BOOL)flag;
//29.创建set并初始化添加一组数组
- (instancetype)initWithArray:(NSArray

@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
//34.为set添加对象通过数组
- (void)addObjectsFromArray:(NSArray
//35.为set插入新的set
- (void)intersectSet:(NSSet
//36.从接受者中删除NSSet的左右成员
- (void)minusSet:(NSSet
//37.移除set的所有对象元素
- (void)removeAllObjects;
//38.取两个集合的并集,如果给定集合中的成员不是接收集合的成员,则将这个成员添加到接收集合中。
- (void)unionSet:(NSSet
//39.将otherSet替换了set并且将两个集合的交集加到set中
- (void)setSet:(NSSet

@end

@interface
//40.新建集合
+ (instancetype)setWithCapacity:(NSUInteger)numItems;

@end

Counted Set ****************/
//41.创建集合
- (instancetype)initWithCapacity:(NSUInteger)numItems; // designated initializer
//42.创建集合 以数组初始化对象
- (instancetype)initWithArray:(NSArray
//43.创建集合 以其他set初始化集合对象
- (instancetype)initWithSet:(NSSet
//44.统计重复集合对象的个数
- (NSUInteger)countForObject:(id)object;
//45.返回一个枚举类型
- (NSEnumerator
//46.添加一个对象
- (void)addObject:(id)object;
//47.移除一个对象
- (void)removeObject:(id)object;

@end

标签:set,void,instancetype,学习,API,NSSet,集合,id
From: https://blog.51cto.com/u_15952281/6042117

相关文章

  • UIView全部API的学习。
    交流群:QQ529560119>/*********UIView是iOS系统界面元素的基础,所有的界面元素都是集成自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是一个叫CALayer(CoreA......
  • 感知机:补充【统计学习方法】
    点到超平面距离公式的推导过程中学学过二维空间中点到直线的距离公式已知点$P(x_0,y_0)$,直线$Ax+By+C=0$,求点$P$到直线$l$的距离点$P$到直线的距离是点$P$到直线$l$的垂......
  • 10节课带你深入学习 DevOps 工程
       作者:JavinPaul10节课带你深入学习DevOps工程对那些想要涉足DevOps领域的工程师来说,这些多样的课程提供了一个很好的开始DevOps现在真的很热门,对于杰出的工程师......
  • #yyds干货盘点 歌谣学前端之react三个api之一
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • #yyds干货盘点 歌谣学前端之react三个api之一续集
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • PHP开发者最好的学习资源收集
    以下内容翻译自:​​phpbuilder.com​​​的​​PHPDeveloperResources​​​文章。资源全为英文资料,不过英文很多文章确实写的非常好!当今PHP是开发WEB应用程序最流行的脚......
  • 它来了,有了JAX 轻松加速机器学习
    JAX是一个为高性能数值计算设计的Python库,特别是机器学习研究。它通过使用GPU来加速Python和NumPy代码。JAX在机器学习领域崭露头角,其野心是使机器学习变得简单而高效。虽然......
  • 计算机导论学习
    这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2023learning这个作业要求在哪https://edu.cnblogs.com/campus/fzzcxy/2023learning/homework/128......
  • MYSQL学习笔记
    一,SQL的分类数据查询语言(DQL---DataQueryLanguage) 代表关键字:select数据操纵语言(DML---DataManipulationLanguage)代表关键字:insert,delete,update数据定义......
  • pytest学习和使用8-fixture如何实现teardown功能?(yield的使用)
    (8-fixture如何实现teardown功能?(yield的使用))1引入之前学习fixture的时候,其实这个功能就类似用例的前置,给用例执行前设置一些条件;那fixture也就相当于setup的功能;那有......