
NSSet,NSMutableSet,和NSCountedSet类声明编程接口对象的无序集合(散列存储:在内存中的存储位置不连续)。
而NSArray,NSDictionary类声明编程接口对象的有序集合(有序存储:在内存中的存储位置连续)。
NSSet,NSMutableSet; 与NSArray,NSMutableArray的区别一样,NSSet声明静态对象。当创建NSSet对象时初始化,后期气候的条目不能修改。而NSMutableSet对象则是可以动态添加和删除的,同时根据对象长度自动分配内存。
需要注意的是:NSSet,NSArray里面只能添加cocoa对象,如果需要加入基本数据类型(int,float,BOol,double等),需要将数据封装成NSNumber类型。
NSSet在实际应用中与NSArray区别不大,但是如果你希望查找NSArray中的某一个元素,则需要遍历整个数组,效率低下。而NSSet在查找某一特定的元素的时候则是根据hash算法直接找到此元素的位置,效率高。
NSSet
- (NSArray *)allObjects;
- (ID)anyObject;
- (BOol)containsObject:(ID)anObject;
- (Nsstring *)description;
- (Nsstring *)descriptionWithLocale:(ID)locale;
- (BOol)intersectsSet:(NSSet *)otherSet;
- (BOol)isEqualToSet:(NSSet *)otherSet;
- (BOol)isSubsetofSet:(NSSet *)otherSet;
+ (ID)set;
+ (ID)setWithObject:(ID)object;
+ (ID)setWithObjects:(const ID *)objects count:(NSUInteger)cnt;
+ (ID)setWithObjects:(ID)firstObj,... NS_REQUIRES_NIL_TERMINATION;
+ (ID)setWithSet:(NSSet *)set;
+ (ID)setWithArray:(NSArray *)array;
- (ID)initWithObjects:(const ID *)objects count:(NSUInteger)cnt;
- (ID)initWithObjects:(ID)firstObj,... NS_REQUIRES_NIL_TERMINATION;
- (ID)initWithSet:(NSSet *)set;
- (ID)initWithSet:(NSSet *)set copyItems:(BOol)flag;
- (ID)initWithArray:(NSArray *)array;
NSMutableSet (NSExtendedMutableSet)
- (voID)addobjectsFromArray:(NSArray *)array;
- (voID)intersectSet:(NSSet *)otherSet;
- (voID)minusSet:(NSSet *)otherSet;
- (voID)removeAllObjects;
- (voID)unionSet:(NSSet *)otherSet;
- (voID)setSet:(NSSet *)otherSet;
+ (ID)setWithCapacity:(NSUInteger)numItems;
- (ID)initWithCapacity:(NSUInteger)numItems;
总结以上是内存溢出为你收集整理的IOS开发之NSSet应用全部内容,希望文章能够帮你解决IOS开发之NSSet应用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)