NSIndexSet-入门浅析
NSIndexSet-入门浅析
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section]withRowAnimation:UITableViewRowAnimationLeft];
NSIndexSet 是个无符号整数集合。集合中的元素不可变的、不可重复。常被用来当作索引使用。就从它字面上理解,就叫做:索引集合。
类方法:
创建一个空的索引集合。
+ (id)indexSet
创建一个索引集合,根据索引值
+ (id)indexSetWithIndex:(NSUInteger)index
创建一个索引集合,根据一个NSRange对象
+ (id)indexSetWithIndexesInRange:(NSRange)indexRange
实例方法:
判断索引集合中是否包含制定的索引值
- (BOOL)containsIndex:(NSUInteger)index
判断索引集合是否包含指定的indexSet
- (BOOL)containsIndexes:(NSIndexSet *)indexSet
判断索引集合是否包含指定的indexRange
- (BOOL)containsIndexesInRange:(NSRange)indexRange
返回索引集合包含的索引数量
- (NSUInteger)count
返回indexRange中包含的索引数量
- (NSUInteger)countOfIndexesInRange:(NSRange)indexRange
枚举NSIndexSet;执行Block操作,在指定的Rang范围内,并使用指定的options方法。
- (void)enumerateIndexesInRange:(NSRange)range options:(NSEnumerationOptions)opts usingBlock:(void (^)(NSUInteger idx, BOOL *stop))block
如果,要枚举的NSIndexSet中不存在Rang中所指定的范围,则跳过。
options参数:
enum {
NSEnumerationConcurrent = (1UL << 0),
NSEnumerationReverse = (1UL << 1),
};
typedef NSUInteger NSEnumerationOptions;
NSEnumerationConcurrent
枚举过程中,各个Block是同时开始执行的。这样枚举的完成顺序是不确定的。
NSEnumerationReverse
以反序方式枚举。
例子:
// theTwo中是否包含theOne
BOOL isContains1= [theTwo containsIndexes:theOne];
BOOL isContains2= [theTwo containsIndex:1];
BOOL isContains3= [theTwo containsIndex:9];
// theTwo中是否包含指定的NSMakeRange
BOOL isContains4= [theTwo containsIndexesInRange:NSMakeRange(0,5)];
int theCount=[theTwo count];
// 遍历theTwo,在指定的Range范围内,执行Block方法,利用制定的options方式
// 如果,theTwo中不存在Range中所指定的范围,在theTwo中不存在,则跳过。
[theTwo enumerateIndexesInRange:NSMakeRange(0,8)
options:NSEnumerationReverse
usingBlock:^(NSUInteger idx, BOOL *stop) {
NSLog(@"-------%d",idx);
NSLog(@"%@",theTwo);
}];
其他的方法,都差不多,就不一一介绍了!
NSIndexSet-入门浅析的更多相关文章
- gulp的入门浅析
阅读目录 介绍gulp 安装gulp gulpfile.js 运行gulp 介绍gulp的api 介绍gulp gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/c ...
- DLL入门浅析(5)——使用DLL在进程间共享数据
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/21/90734.html 在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的 ...
- DLL入门浅析(4)——从DLL中导出类
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90663.html 前面介绍了怎么从DLL中导出函数和变量,实际上导出类的方法也是大同小 ...
- DLL入门浅析(3)——从DLL中导出变量
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90643.html 前面介绍了怎么从DLL中导出函数,下面我们来看一下如何从DLL中导出 ...
- DLL入门浅析(2)——如何使用DLL
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90621.html 上文我简单的介绍了如何建立一个简单DLL,下面再我简单的介绍一下如何 ...
- DLL入门浅析(1)——如何建立DLL
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90619.html 初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮 ...
- Android Dragger2快速入门浅析
定Dagger2的基本介绍:dagger2是一个依赖注入框架,在编译期间自动生成代码,负责依赖对象的创建. 使用Dagger2的好处:为了进一步解耦和方便测试,我们会使用依赖注入的方式构建对象 (不使 ...
- Xamarin入门浅析
1. 安装 1) 使用标准安装流程(JDK1.6 -> Android SDK -> NDK -> Xamarin Studio -> Xamarin Visual Studi ...
- DLL入门浅析【转】
1.建立DLL动态库 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的.所有的C语言标准库函数都存放在某一函数库中.在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数 ...
- FLV协议5分钟入门浅析
FLV协议简介 FLV(Flash Video)是一种流媒体格式,因其体积小.协议相对简单,很快便流行开来,并得到广泛的支持. 常见的HTTP-FLV直播协议,就是使用HTTP流式传输通过FLV封装的 ...
随机推荐
- openStack controller 管理网口TX数据量非常大 网络总是丢包
- ganglia 启动命令
gmond 版本号 3.1.7 sudo service ganglia-monitor start 验证是否打开 telnet localhost 8649 gmetad 版本号3.1.7 serv ...
- Windows环境下python多版本配置方案
系统环境 Windows,安装了msys2,windows和msys2都安装了python,且版本比较多,使用shell/bash聚合工具conemu64 配置方案 配置msys2环境用户目录下的.b ...
- struct--------构造函数对结构体初始化的影响
struct--------构造函数对结构体初始化的影响. 没有构造函数时使用如下: struct ClassBook{ int number; int age; }; int main() { ...
- SRM 207 Div II Level Two: RegularSeason,字符串操作(sstream),多关键字排序(操作符重载)
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=2866&rd=5853 主要是要对字符串的操作要熟悉,熟 ...
- 解决"the currently displayed page contains invalid values"
原因是你的工程的根目录少了default.properties(有点项目工程这个文件名称是project.properties)这个文件,导致不能选择target: 解决办法: 在工程根目录下建立 ...
- android 自定义progressDialog实现
我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让 大家最容易想到的就是progressbar或者progres ...
- 成为VR开发者的六个基本问题
2016-05-31 小小CTO 未来CTO 我常被问起能否提供更多的建议,帮助其他人进入这个行业,或是做VR开发人员该怎么赚钱.我很难具体回答,因为每个人的情况都很不一样.不过还是有一些建议适用于想 ...
- php 链式操作的实现 学习记录
php 面向对象中实现链式操作的关键部分:调用的方法中返回当前对象 ,从而实现链式操作: <?php namespace commom; class db { public function w ...
- NPOI从数据库中导出数据到Excel
首先要添加NPOI.dll程序集 https://yunpan.cn/cMeSTELJSXmJJ 访问密码 8d83 把里面的程序集都添加到引用里 下面的代码是从数据库导出到Excel { //pa ...