iphonedevelopment专题小站

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

本文转载自iPhone开发论坛www.madhome.org

[upload=5]当你浏览NSString方法时,你会发现其中许多都涉及到NSRange。它其实并不比C语言结构高深到哪去,只不过用来描述一系列的项目,包括一个起始位置和一个算术。例如,一个分类能够很有效的帮助你从其它字符串中选取一个子字符串,通过这样你可以指定起始位置和所需的元素数量(如下例所示)。
NSRange 定义
NSRange是一种结构,定义如下:


NSRange及NSString" border=0 alt="【转载】iPhone开发论坛madhome-- NSRange及NSString" src="http://www.madhome.org/attachment/Mon_1001/39_51_c22900424358267.jpg">

位置是划分中的起点指数(0为起始位置)而长度是划分中的条目数量。NSUInteger只是一个无符号的值,它支持32位和64位系统。以下是关于NSUInteger的定义:

NSRange及NSString" border=0 alt="【转载】iPhone开发论坛madhome-- NSRange及NSString" src="http://www.madhome.org/attachment/Mon_1001/39_51_e57f50b5e83bfd9.jpg">

NSRange和字符串
下述示例展示了创建一个划分的方法并通过这个方法来摘录一个子字符串——下列的输出为IPA

NSRange及NSString" border=0 alt="【转载】iPhone开发论坛madhome-- NSRange及NSString" src="http://www.madhome.org/attachment/Mon_1001/39_51_8e3d6f380abb20d.jpg">

如果你想要搜索一个子字符串,你可以通过如下代码来实现:

NSRange及NSString" border=0 alt="【转载】iPhone开发论坛madhome-- NSRange及NSString" src="http://www.madhome.org/attachment/Mon_1001/39_51_59377e77d8420dd.jpg">

上述的输出将会显示:Range is: {25, 3} 需要注意的是,NSStringFromRange()的指令将显示返回的值(一个划分)作为一个NSString。同样我们可以通过NSRangeFromString()功能,从一个字符串中创建一个划分。
让我们再看一个示例,下列代码将会搜索字符串“ia”,从这串字符的末尾转移到初始位置:

NSRange及NSString" border=0 alt="【转载】iPhone开发论坛madhome-- NSRange及NSString" src="http://www.madhome.org/attachment/Mon_1001/39_51_4b6648f3383bf34.jpg">

上述结果是:Range is: {12, 2} (在“India”中将会出现“ia”)。
NSRange 功能
以下列出的是一些你可能在分类时需要的功能
NSEqualRanges()
NSIntersectionRange()
NSLocationInRange()
NSMakeRange()
NSMaxRange()
NSRangeFromString()
NSStringFromRange()
NSUnionRange()

附件下载地址:iPhone开发论坛madhome

posted on 2010-03-30 10:53  rek  阅读(308)  评论(0编辑  收藏  举报