`

NSRange 的用法

阅读更多
NSRange的定义
typedef struct _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
typedef unsigned long NSUInteger;
#else
typedef unsigned int NSUInteger;
#endif
例子:
下面这个例子,将输出IPA
NSString *homebrew = @"Imperial India Pale Ale (IPA)";
// Starting at position 25, get 3 characters
NSRange range = NSMakeRange (25, 3);
// 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.length > 0)
  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.length > 0)
  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(0, 5);
        NSArray *subArray = [self.states subarrayWithRange:range];
这样就获得了这个数组中0开始的5个元素的子集。
分享到:
评论

相关推荐

    Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析

    本文以实例详细描述了Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect的定义及用法,具体如下所示: 1、NSRange: NSRange的原型为 typedef struct _NSRange { NSUInteger location; NSUInteger ...

    Objective-C中NSString的各种用法

    2. 使用 alloc 和 initWithString 方法创建字符串:`NSString *str2 = [[NSString alloc] initWithString:@"adf"];` 3. 使用 stringWithFormat 方法创建字符串:`NSString *str3 = [NSString stringWithFormat:@...

    ios-AttributedString 富文本简单实用.zip

    在链接文章《iOS开发:AttributedString详解》中,作者详细介绍了AttributedString的使用方法,包括如何处理链接、图片、自定义视图等高级用法。这篇文章可以帮助开发者掌握更多关于AttributedString的实战技巧,...

    UILable 用法

    本篇文章将深入探讨`UILabel`的使用方法,包括改变字体颜色、大小、实现文字高亮、自动适应大小、截去中间文字以及设置行数等核心知识点。 一、改变字体颜色与大小 在`UILabel`中,我们可以通过设置`textColor`属性...

    iOS富文本的使用方法示例详解

    在iOS开发中,富文本(Rich Text)是一种允许在单一文本字符串中包含不同样式和格式的方法,如改变字体、颜色、下划线等。富文本的使用通常涉及到`NSAttributedString`和`NSMutableAttributedString`类,它们是iOS...

    NSAttributedString 的小例子

    首先,创建NSAttributedString的基本步骤是创建一个NSMutableAttributedString实例,然后使用append方法添加字符串。每添加一个字符串,我们都可以设置其特定的属性,如字体(UIFont)、颜色(UIColor)和字号。例如...

    Objective_C Foundtion Kit 快速教程

    2. **获取字符串长度**: 使用`length`方法,例如`[str length]`将返回字符串的字符数。 3. **字符串比较**: `isEqualToString:`方法用于比较两个字符串内容是否相同,而`compare:`方法则进行更复杂的比较,返回`...

    UILabel内容中某个文字添加点击事件

    使用这个扩展非常简单,只需要给UILabel对象调用`addTextTapActionForRanges:handler:`方法,传入需要响应点击的NSRange数组和处理点击的block即可: ```objc NSArray *ranges = @[[NSValue valueWithRange:...

    UILabel改变任意位置字体大小颜色

    `setTextColor:forRange:`方法可能会使用`NSMutableAttributedString`来构建一个新的属性字符串,然后将其设置为`UILabel`的`attributedText`。`setTextFontSize:forRange:`方法也会类似,通过修改`...

    iOS Label的自适应高度和字间距行距

    然后,我们可以使用`sizeThatFits`或`intrinsicContentSize`方法来计算出适应文本内容的合适尺寸。例如: ```swift let label = UILabel() label.numberOfLines = 0 label.lineBreakMode = .byWordWrapping label....

    ios基础教程之常见的数组使用方法

    本教程将深入探讨iOS中常见的数组使用方法,包括不可变数组(NSArray)和可变数组(NSMutableArray)。这些方法对于理解并有效地操作数组至关重要。 一、数组的简单介绍 数组在Objective-C(OC)中是一个对象,它...

    UiOS开发中ITextView回收或关闭键盘使用方法总结

    在iOS开发中,当涉及到用户输入时,我们经常会用到`UITextView`和`UITextField`。然而,两者在处理键盘显示...例如,可能同时使用方法一和方法二,以确保用户可以通过点击导航栏的Done按钮或直接按下回车键来关闭键盘。

    swift-UITextFieldUITextView限制输入

    具体使用方法需要查看项目文档,一般会包括创建自定义过滤规则,然后将其应用到`UITextField`或`UITextView`的输入代理方法中。 ```swift // 假设LFYTextInputFilter有一个类LFYTextInputFilter,用于创建过滤器 ...

    实现iPhone电子书的分页显示功能的代码借鉴.pdf

    1. 首先,在`viewDidLoad`方法中初始化必要的变量,如总页数(totalPages),当前页数(currentPage),以及用于显示的UILabel(textLabel)。 ```objc - (void)viewDidLoad { [super viewDidLoad]; totalPages =...

    ios-富文本.zip

    在iOS中,我们可以使用`NSAttributedString`类和它的子类`NSMutableAttributedString`来创建和操作富文本。 标题"ios-富文本.zip"暗示了这个压缩包可能包含了关于如何在iOS应用中实现富文本样式的示例代码。描述中...

    iOS正则表达式工具

    在iOS开发中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能通过预定义的模式...熟练掌握正则表达式及其使用方法,将极大地提升你的iOS开发能力。同时,利用好相关的工具,可以使开发过程更为高效。

    swift-YBAttributeString用Masonry的语法写NSAttributedString

    首先,我们要理解`NSAttributedString`的基本用法。通常,我们通过创建一个`NSAttributedString`实例,并设置其属性字典,来定义文本的样式。例如: ```swift let attributedString = NSMutableAttributedString...

    iOS 富文本

    在iOS开发中,富文本(Rich Text)是一种能够包含多种格式和样式...以上是关于iOS富文本的基本概念、使用方法以及一些实践中的注意事项。通过熟练掌握这些知识点,开发者可以创建出功能丰富的文本界面,提升用户体验。

Global site tag (gtag.js) - Google Analytics