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的定义及用法,具体如下所示: 1、NSRange: NSRange的原型为 typedef struct _NSRange { NSUInteger location; NSUInteger ...
2. 使用 alloc 和 initWithString 方法创建字符串:`NSString *str2 = [[NSString alloc] initWithString:@"adf"];` 3. 使用 stringWithFormat 方法创建字符串:`NSString *str3 = [NSString stringWithFormat:@...
在链接文章《iOS开发:AttributedString详解》中,作者详细介绍了AttributedString的使用方法,包括如何处理链接、图片、自定义视图等高级用法。这篇文章可以帮助开发者掌握更多关于AttributedString的实战技巧,...
本篇文章将深入探讨`UILabel`的使用方法,包括改变字体颜色、大小、实现文字高亮、自动适应大小、截去中间文字以及设置行数等核心知识点。 一、改变字体颜色与大小 在`UILabel`中,我们可以通过设置`textColor`属性...
在iOS开发中,富文本(Rich Text)是一种允许在单一文本字符串中包含不同样式和格式的方法,如改变字体、颜色、下划线等。富文本的使用通常涉及到`NSAttributedString`和`NSMutableAttributedString`类,它们是iOS...
首先,创建NSAttributedString的基本步骤是创建一个NSMutableAttributedString实例,然后使用append方法添加字符串。每添加一个字符串,我们都可以设置其特定的属性,如字体(UIFont)、颜色(UIColor)和字号。例如...
2. **获取字符串长度**: 使用`length`方法,例如`[str length]`将返回字符串的字符数。 3. **字符串比较**: `isEqualToString:`方法用于比较两个字符串内容是否相同,而`compare:`方法则进行更复杂的比较,返回`...
使用这个扩展非常简单,只需要给UILabel对象调用`addTextTapActionForRanges:handler:`方法,传入需要响应点击的NSRange数组和处理点击的block即可: ```objc NSArray *ranges = @[[NSValue valueWithRange:...
`setTextColor:forRange:`方法可能会使用`NSMutableAttributedString`来构建一个新的属性字符串,然后将其设置为`UILabel`的`attributedText`。`setTextFontSize:forRange:`方法也会类似,通过修改`...
然后,我们可以使用`sizeThatFits`或`intrinsicContentSize`方法来计算出适应文本内容的合适尺寸。例如: ```swift let label = UILabel() label.numberOfLines = 0 label.lineBreakMode = .byWordWrapping label....
本教程将深入探讨iOS中常见的数组使用方法,包括不可变数组(NSArray)和可变数组(NSMutableArray)。这些方法对于理解并有效地操作数组至关重要。 一、数组的简单介绍 数组在Objective-C(OC)中是一个对象,它...
在iOS开发中,当涉及到用户输入时,我们经常会用到`UITextView`和`UITextField`。然而,两者在处理键盘显示...例如,可能同时使用方法一和方法二,以确保用户可以通过点击导航栏的Done按钮或直接按下回车键来关闭键盘。
具体使用方法需要查看项目文档,一般会包括创建自定义过滤规则,然后将其应用到`UITextField`或`UITextView`的输入代理方法中。 ```swift // 假设LFYTextInputFilter有一个类LFYTextInputFilter,用于创建过滤器 ...
1. 首先,在`viewDidLoad`方法中初始化必要的变量,如总页数(totalPages),当前页数(currentPage),以及用于显示的UILabel(textLabel)。 ```objc - (void)viewDidLoad { [super viewDidLoad]; totalPages =...
在iOS中,我们可以使用`NSAttributedString`类和它的子类`NSMutableAttributedString`来创建和操作富文本。 标题"ios-富文本.zip"暗示了这个压缩包可能包含了关于如何在iOS应用中实现富文本样式的示例代码。描述中...
在iOS开发中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能通过预定义的模式...熟练掌握正则表达式及其使用方法,将极大地提升你的iOS开发能力。同时,利用好相关的工具,可以使开发过程更为高效。
首先,我们要理解`NSAttributedString`的基本用法。通常,我们通过创建一个`NSAttributedString`实例,并设置其属性字典,来定义文本的样式。例如: ```swift let attributedString = NSMutableAttributedString...
在iOS开发中,富文本(Rich Text)是一种能够包含多种格式和样式...以上是关于iOS富文本的基本概念、使用方法以及一些实践中的注意事项。通过熟练掌握这些知识点,开发者可以创建出功能丰富的文本界面,提升用户体验。