NSRange的定义

typedefstruct_NSRange

{

NSUInteger location;

NSUInteger length;

} NSRange;

NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度。他们都是NSUInteger类型。 而NSUInteger类型的定义如下:

#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64

typedefunsignedlongNSUInteger;

#else

typedefunsignedintNSUInteger;

#endif

例子:

下面这个例子,将输出IPA

NSString *homebrew = @"Imperial India Pale Ale (IPA)";

// Starting at position 25, get 3 characters

NSRange range = NSMakeRange (253);

// This would also work:

// NSRange range = {25, 3};

NSLog (@"Beer shortname: %@", [homebrew substringWithRange:range]);

搜索字符串:

NSString *homebrew = @"Imperial India Pale Ale (IPA)";

NSRange range = [homebrew rangeOfString:@"IPA"];

// Did we find the string "IPA" ?

if (range.length0)

NSLog(@"Range is: %@", NSStringFromRange(range));

上面的程序将输出Range is: {25, 3}。NSStringFromRange()方法,将一个NSRange返回一个NSString。而另外一个函数NSRangeFromString()则是将NSString转换为NSRange

下面这个例子将从后向前反向搜索字符串:

NSString *homebrew = @"Imperial India Pale Ale (IPA)";

// Search for the "ia" starting at the end of string

NSRange range = [homebrew rangeOfString:@"ia"options:NSBackwardsSearch];

// What did we find

if (range.length0)

NSLog(@"Range is: %@", NSStringFromRange(range));

上面的程序将输出:Range is: {12, 2}

ac

如果你要获取一个字符串或者一个数组中的一个子集,那么使用NSRange会很方便的定义这个子集。

NSRange定义

Declaration: typedef struct _NSRange {

NSUInteger location;

NSUInteger length;

} NSRange;

创建NSRange的方法定义

Declaration: NSRange NSMakeRange (

NSUInteger loc,

NSUInteger len

);

例如获取一个数组的一个子集:

NSRange range = NSMakeRange(05);

NSArray *subArray = [self.states subarrayWithRange:range];

这样就获得了这个数组中0开始的5个元素的子集。

转载于:https://www.cnblogs.com/chivas/archive/2012/05/06/2485956.html

NSRange的用法【转】相关推荐

  1. iOS开发-OC-Foundation框架

    一.Foundation-基础框架 框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 1.范围 NSRange //NSRange的定义 typedef struc ...

  2. NSString ,NSMutableString用法以及一些常用方法

    2019独角兽企业重金招聘Python工程师标准>>> 1.NSString的用法 //1.创建常量字符串.NSString *string1 = @"这是一个NSStri ...

  3. NSString的各种用法总结(创建、截取、判断比较、转化数据类型、拼接、替换、添加、追加、读取、写入、删去、改变)

    1.创建字符串1)NSSring *str = @"adf";2)NSString *str1 = [NSString new];NSString *str2 = [[NSStri ...

  4. c语言OBJECT数组,Objective-C中NSArray的基本用法示例

    NSArray的排序 + (id)studentWithFirstName:(NSString *)firstName lastName:(NSString *)lastName{ Student * ...

  5. NSString、NSMutableString基本用法

    NSString.NSMutableString基本用法 NSString其实是一个对象类型.NSString是NSObject(Cocoa Foundation的基础对象)的子类 一.NSStrin ...

  6. CoreData用法三: NSPredicate在CoreData中的使用

    NSPredicate在CoreData中常用作查询使用,相当于sql语句中的where查询子句. 最常用的方法为: NSPredicate *ca = [NSPredicate predicateW ...

  7. iOS开发宝典:String用法大全

    本文转载至 http://mobile.51cto.com/iphone-395171.htm 新手们还在等什么?这是一本属于你的iOS开发"字典",在这里你可以查到字符串.数组. ...

  8. iOS开发学习专题-基础知识(一)NSString NSMutableString NSRange NSNotFound详细使用方式

    本文主要讲解的是不可变字符串NSStringNSString可变字符串NSMutableStringNSRangeNSNotFound详细使用方式 近期主要做的是iOS开发基础知识Objective- ...

  9. NSArray 基本用法

    NSString *string1 = @"two"; NSString *string2 = @"one"; //创建数组 NSArray *array1 = ...

最新文章

  1. c#让程序在WIN7下兼容模式运行
  2. Map Set list 理解
  3. Java Review - 并发编程_伪共享
  4. android.os.binderproxy cannot be cast to,Android服务android.os.BinderProxy错误
  5. 树状数组基本用法详解
  6. PowerShell实现批量收集SCVMM中虚拟机IP-续
  7. python正则_python的正则表达式
  8. AI「抄」代码无罪?GitHub Copilot拿用户的开源代码改一改就去挣钱!
  9. Java入门——(5)Java API
  10. 匈牙利算法和KM算法的理解
  11. 金蝶——“免、抵、退”税操作说明及帐务处理
  12. 罗技c270摄像头支持linux,电信局点使用罗技C270摄像头调试指导
  13. uva 11134 Fabled Rooks
  14. 让别人远程访问你的代码网站项目或临时演示你的项目给客户的方式详解即外网局域网访问自己的项目
  15. 超声波测距仪编程_Arduino轻松学Mixly编程第9课 超声波测距仪
  16. 计算机模块中的画板英文,画图板
  17. 2020-10-21 ubuntu 打包解包压缩解压tar gz bz2 tar.Z tgz rar lha格式
  18. django入门--django-blog-zinnia搭建个人博客
  19. 代码实现:根据输入的年份,打印该年的年历
  20. 服务器2012打开远程端口,Windows Server 2012远程默认端口3389的修改

热门文章

  1. java三大特性 继承_java基础(二)-----java的三大特性之继承
  2. 安装mysql5.7.24rpm_centos7安装mysql-5.7.24(rpm安装)
  3. 前端请求接口post_前端如何优雅地模拟接口请求?(给你的代码加点小意外)
  4. python中print的用法_Python中print函数简单使用总结
  5. 单体、分布式、微服务、Serverless软件架构一览
  6. 《搜索算法——DFS、BFS、回溯》
  7. css中的node.js_在Node App中使用基本HTML,CSS和JavaScript
  8. HDFC的完整形式是什么?
  9. 32接上拉5v_51单片机P0口上拉电阻的选择
  10. 在windows下,编译可访问https的libcurl静态库过程