常用結構體之NSRange用法
阿新 • • 發佈:2019-02-05
定義
NSRange在官方文件中如是定義:A structure used to describe a portion of a series—such as characters in a string or objects in an NSArray object.
即用來描述字串中一部分字元或者NSArray中的一部分物件
NSRange的定義
typedef struct _NSRange
{
NSUInteger location;
NSUInteger length;
} NSRange;
NSRange是一個結構體,其中location是一個以0為開始的index,length是表示物件的長度。他們都是NSUInteger型別。
用法:
int main(int argc, const char * argv[]) {
NSString *string = @"i love using Xcode!";
//NSRange r = NSMakeRange(2, 3);
//查詢某個字串在string中的範圍
NSRange r1 = [string rangeOfString:@"Xcode"];
//列印給定範圍的子串
NSLog(@"%@",[string substringWithRange:r1]);
//列印搜尋到的子串的範圍
NSLog(@"loc:%ld, length:%ld" ,r1.location,r1.length);
//NSRange轉換成NSString
NSLog(@"Range is: %@", NSStringFromRange(r1));
//如果找不到,length = 0,location == -1 == NSNotFound,(9223372036854775807)
NSRange r2 = [string rangeOfString:@"objective"];
NSLog(@"%d",NSNotFound);
NSLog(@"%d",(int)r2.location);
//NSString 轉換成NSRange
NSRange r3=NSRangeFromString(@"{3, 3}");
NSLog(@"r3 is:%@",NSStringFromRange(r3));
return 0;
}