NSRange使用方法总结

本文介绍了NSRange的创建方法,包括结构体变量访问、整体赋值和NSMakeRange函数的使用,并提及在Objective-C中推荐使用NSMakeRange。此外,还提及了与NSString相关的调用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*******这篇文章是在总结NSCharacterSet文章时用到了相关属性,算是那篇文章的一个补充**********

NSRange是Foundation框架中比较常用的一种结构体,用来表示事物的一个范围.通常是字符串里的字符范围或者数组里的元素范围。

   
    typedef struct _NSRange {
        NSUInteger location;   //表示该范围的起始位置
        NSUInteger length;     //表示该范围内的长度
    } NSRange;

1、NSRange的创建

1.1、通过结构体变量访问成员


NSRange range;
//通过结构体变量访问成员
range.location = 3;
range.length = 2;

2.2、结构体变量整体赋值


NSRange range;
//结构体变量整体赋值
range = (NSRange){5,3};
NSRange r2 = {4,5};  //最简单的
NSRange r3 = {.location = 3,.length = 5};

2.3、NSMakeRange函数(OC中建议使用这种)


NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
	NSRange r;
	r.location = loc;
	r.length = len;
	return r;
}
//NSMakeRange函数的作用给 NSRange结构体变量赋值
NSRange r4 = NSMakeRange(3, 3);
//将一个结构体转化成字符串
NSString *str = NSStringFromRange(r4);

2、NSString相关调用方法


//反回aString在调用的字符串的起始点和长度
FOUNDATION_EXPORT NSRange NSRangeFromString(NSString *aString);

//返回一个NSString字符串,起始于range.location,包含range.length长度的字符串
FOUNDATION_EXPORT NSString *NSStringFromRange(NSRange range);

下面的方法使用比较少,暂时放在这里


/* These methods perform string search, looking for the searchString within the receiver string.  These return length==0 if the target string is not found. So, to check for containment: ([str rangeOfString:@"target"].length > 0).  Note that the length of the range returned by these methods might be different than the length of the target string, due composed characters and such.
 
Note that the first three methods do not take locale arguments, and perform the search in a non-locale aware fashion, which is not appropriate for user-level searching. To do user-level string searching, use the last method, specifying locale:[NSLocale currentLocale], or better yet, use localizedStandardRangeOfString: or localizedStandardContainsString:.
 
The range argument specifies the subrange, rather than the whole, of the receiver to use in the search.  It is an error to specify a range that is outside of the receiver's bounds, and an exception may be raised.
*/
- (NSRange)rangeOfString:(NSString *)searchString;
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask;
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch;
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch locale:(nullable NSLocale *)locale API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0));

这篇文章参考较多,链接如下

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值