//

//  main.m

//  NSSET

//

//  Created by facial on 25/8/15.

//  Copyright (c) 2015 facial_huo. All rights reserved.

//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

// insert code here...

NSLog(@"Hello, World!");

NSSet *set = [[NSSet alloc] initWithObjects:@"one", @"two", @"three", @"four", nil];

//打印set 获取nsset的长度

NSLog(@"%@, %lu", set, [set count] );

bool ret = [set containsObject: @"one"];

NSLog(@"%d", ret);

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

NSSet *set2 = [[NSSet alloc] initWithObjects: @"one", @"two", @"three", @"four", @"five",nil];

bool isSame = [ set isEqualToSet: set2];

NSLog(@"%d", isSame);

//判断是否是子集合

bool isSub = [set isSubsetOfSet: set2];

NSLog(@"%d", isSub);

//枚举器 遍历nsset元素

NSEnumerator *enumor = [set objectEnumerator];

NSString *item;

while (item = [enumor nextObject]) {

NSLog(@"%@",item);

}

//通过数组创建集合

NSArray *array = [[NSArray alloc] initWithObjects: @"arry1", @"arry2", @"arry3",  nil];

NSSet *arraySet = [[NSSet alloc] initWithArray:array ];

NSLog(@"%@", arraySet);

//把集合变成数组

NSArray *SetToArray = [arraySet allObjects];

NSLog(@"%@", SetToArray);

// NSMutableSet; 添加元素

NSMutableSet *mSet = [NSMutableSet new];

[mSet addObject: @"a"];

[mSet addObject: @"b"];

[mSet addObject: @"c"];

NSLog(@"%@", mSet);

//删除元素

[mSet removeObject: @"a"];

NSLog(@"%@", mSet);

// 把一个集合添加到另外一个集合

NSSet *test_set = [[NSSet alloc] initWithObjects: @"d", @"e", @"f", nil];

[mSet unionSet: test_set];

NSLog(@"%@", mSet);

//取两个集合的交集

NSSet *test_set2 =  [[NSSet alloc] initWithObjects: @"a", @"b", @"f", nil];

[mSet minusSet: test_set2];

NSLog(@"%@", mSet);

//索引集合

NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange: NSMakeRange(2, 3)];

NSArray *array2 = [[NSArray alloc] initWithObjects: @"a", @"b", @"c",@"d", @"e", nil];

NSArray *newArray2 = [array2 objectsAtIndexes: indexSet];

NSLog(@"%@", newArray2);

//

NSMutableIndexSet *muteIndex = [[NSMutableIndexSet alloc] init];

[muteIndex addIndex: 0];

[muteIndex addIndex: 1];

NSArray *newArray3 = [[NSArray alloc] initWithObjects: @"aa", @"bb", @"cc", @"dd", @"ee", nil];

NSArray *newArray4 = [newArray3 objectsAtIndexes: muteIndex];

//NSArray *a = [array2 objectAtIndex: index];

NSLog(@"%@", newArray4);

}

return 0;

}

Object -C NSSet -- 笔记的更多相关文章

  1. Object C学习笔记24-关键字总结

    学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1.  #import #import <> 从syste ...

  2. Object C学习笔记22-#define 用法

    上一篇讲到了typedef 关键字的使用,可以参考文章 Object C 学习笔记--typedef用法 .而在c中还有另外一个很重要的关键字#define. 一. #define 简介 在C中利用预 ...

  3. Object C学习笔记21-typedef用法

    在上一章的学习过程中遇到了一个关键字typedef,这个关键字是C语言中的关键字,因为Object C是C的扩展同样也是支持typedef的. 一. 基本作用 typedef是C中的关键字,它的主要作 ...

  4. Object C学习笔记18-SEL,@ selector,Class,@class

    本章是对上一章<<Object C学习笔记17-动态判断和选择器>>的一点补充,所以比较简单点. 一. SEL 类型 在上一篇介绍了几个方法,都只是介绍了其使用方式但是没有具体 ...

  5. Object C学习笔记17-动态判断和选择器

    当时学习Object C的时被人鄙视了一顿,说使用.NET的思想来学Object C就是狗屎:不过也挺感谢这位仁兄的,这让我学习的时候更加的谨慎.今天的学习笔记主要记录Object C中的动态类型相关 ...

  6. Object C学习笔记10-静态方法和静态属性

    在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此.在Object C中也存在static关键字,今天的学 ...

  7. Object C学习笔记24-关键字总结(转)

    学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1.  #import #import <> 从syste ...

  8. Object C学习笔记15-协议(protocol)

    在.NET中有接口的概念,接口主要用于定义规范,定义一个接口关键字使用interface.而在Object C 中@interface是用于定义一个类的,这个和.NET中有点差别.在Object C中 ...

  9. Object C学习笔记13-Dictionary字典

    通过Array数组和Set集合的学习和理解,可以想象得到Dictionary也分为两种情况了,那就是可变和不可变两种类型的.的确如此,在Object C中提供了两个字典类,分别为NSDictionar ...

随机推荐

  1. iOS程序的完整启动过程(有storyboard)

    1.先执行main函数,main内部会调用UIApplicationMain函数 2.UIApplicationMain函数里面做了什么事情:1> 创建UIApplication对象 2> ...

  2. MySQL中对varchar类型排序问题

    在数据库表中有一个对varchar类型的数值进行desc排序,很简单的要求吧.可是奇怪的现象出现了表中的数据不会根据从高到底进行排序了瞬间有点泪奔的感觉呀还好经过高手指点啊.所以想和大家分享一下希望下 ...

  3. Java中的继承与组合

    本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别.首先文章会给出一小段代码示例,用于展示到底什么是继承.然后演示如何通过“组合”来改进这种继承的设计机制.最后总结这两者的应用场景,即到 ...

  4. C++ Primer 5th 第13章 拷贝控制

    当一个对象的引用或者指针离开作用域时,析构函数不会执行. 构造函数有初始化部分(初始化列表)和函数体. 析构函数有析构部分和函数,但析构函数的析构部分是隐式的.

  5. css实现鼠标移入table时出现滚动条且table内容不移位

    一般是这样: 表格的标题和内容分别由一个table组成,其中表格内容的table由一个class="table-body"的div包裹.css如下 .tContainer .tab ...

  6. C# ,asp.net 获取当前,相对,绝对路径(转)

    C# ,asp.net 获取当前,相对,绝对路径 一.C#获取当前路径的方法: . System.Diagnostics.Process.GetCurrentProcess().MainModule. ...

  7. java获得系统当前日期

    package com.web.test; import java.text.ParseException; import java.text.SimpleDateFormat; import jav ...

  8. Ecshop后台菜单添加

    首先需要修改四个文件:inc_priv.php, inc_menu.php, priv_action.php, commn.php 假如当前的项要加在商品管理的菜单下 一:在languages/zh_ ...

  9. 从零开始学Sketch——入门篇-b

    如果你是一枚交互设计师或者UI设计师,那么你一定知道Sketch这个强大的矢量设计软件:如果你用过Photoshop,那么在你接触了Sketch之后就能了解到这款产品相对于PS的优点,说不定会跟我一样 ...

  10. 【Oracle】windows默认共享的打开和关闭?

    Windows启动时都会默认打开admin$ ipc$ 和每个盘符的共享,对于不必要的默认共享,一般都会把它取消掉,可当又需要打开此默认共享时,又该从哪里设置呢,一般来说有两个地方,MSDOS命令和计 ...