黑马程序员技术交流社区

标题: NSRage的用法 [打印本页]

作者: yaozeyang_2014    时间: 2014-4-5 13:12
标题: NSRage的用法
本帖最后由 yaozeyang_2014 于 2014-4-6 10:13 编辑

NSRage可以适用于那方面,实用性在哪里呢?
作者: 一只小菜鸟    时间: 2014-4-5 19:54
本帖最后由 一只小菜鸟 于 2014-4-5 20:05 编辑
  1. typedef struct _NSRange {
  2.     NSUInteger location;        //以0开始的index
  3.     NSUInteger length;           //对象的长度
  4. } NSRange;

  5. //NSMakeRange
  6. NSString *test = @"hello world";
  7. NSRange range = NSMakeRange (6, 5);
  8. NSLog (@"截取的字符串: %@", [test substringWithRange:range]);
  9. //输出     截取的字符串: world
  10. NSString *test1 = @"hello world";
  11. NSRange range1 = [test1 rangeOfString:@"ld" options:NSBackwardsSearch];
  12. NSLog(@"Range is: %@", NSStringFromRange(range1));
  13. //输出     Range is: {9, 2}
复制代码

作者: 那个Mr_Z    时间: 2014-4-5 20:23
NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度。他们都是NSUInteger类型。
常见的赋值方式
NSRange r1 = {2,4};//不用
NSRange r2 = {.location = 2, .length = 4};//不用
NSRange r3 = NSMakeRange(2, 4);//掌握
作者: 脸皮猴    时间: 2014-4-5 21:48
比如需要取出某个字符串某个范围的字符串,替换某个范围的字符串,删除某个范围的字符串等等..类似的地方,这个结构体都要用到。
作者: 董月峰    时间: 2014-4-5 23:17
本帖最后由 董月峰 于 2014-4-5 23:18 编辑

--------摘自本人博客:http://850361034.blog.163.com
void range()
{
    //    struct Date {
    //        int year;
    //        int month;
    //        int day;
    //    };
    //
    //    struct Date = {2011, 11, 12};
   
    //@"i love oc"  // love的范围
   
    //    NSRange r1 = {2, 4}; // 不用
    //    NSRange r2 = {.location = 2, .length = 4}; //也不用
    //
    //    // 常用的是Foundation框架自带的函数
    //    NSRange r3 = NSMakeRange(2, 4);  //  记住并掌握这种方式
   
    NSString *str = @"i love oc";
   
    // 查找某个字符串在str中的范围
    // 若找不到,length = 0,location = NSNotFound== -1
    NSRange range = [str rangeOfString:@"str"];
   
    NSLog(@"loc = %d, length = %d", range.location, range.length);
   

}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2