官网文档
Returns a range from a textual representation.
Declaration
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之前要看文档,看文档,看文档