NSRangeFromString 测试

官网文档

Returns a range from a textual representation.

Declaration

SWIFT

func NSRangeFromString(aStringString) -> NSRange

OBJECTIVE-C

NSRange NSRangeFromString NSString *aString );

Discussion

Scans aString for two integers which are used as the location and length values, in that order, to create anNSRange struct. If aString only contains a single integer, it is used as the location value. If aString does not contain any integers, this function returns an NSRange struct whose location and length values are both 0.

Availability

Available in iOS 2.0 and later.

 今天发现一个由 NSRangeFromString 引起的bug,主要看这命名吧,对这个方法的理解错误引起的。很惭愧的说,我自以为,这货应该返回的是字符串的开始位置和长度。-_-#! 测试后,又看了文档,才发现,不是这么回事!

NSString *str1 = @"abcdef";
NSString *str2 = @"1-105";
NSString *str3 = @"13";
NSString *str4 = @"13 34";
NSString *str5 = @"15 32 77";
NSRange range = NSRangeFromString(str1);
NSLog(@"
location:%ld  length:%ld", range.location, range.length);
//location:0  length:0

range = NSRangeFromString(str2);
NSLog(@"
location:%ld  length:%ld", range.location, range.length);
//location:1  length:105

range = NSRangeFromString(str3);
NSLog(@"
location:%ld  length:%ld", range.location, range.length);
//location:13  length:0

range = NSRangeFromString(str4);
NSLog(@"
location:%ld  length:%ld", range.location, range.length);
//location:13  length:34

range = NSRangeFromString(str5);
NSLog(@"
location:%ld  length:%ld", range.location, range.length);
//location:15  length:32

  

在使用一个api之前要看文档,看文档,看文档

 
原文地址:https://www.cnblogs.com/warrior/p/5103788.html