A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yaozeyang_2014 中级黑马   /  2014-4-5 13:12  /  1206 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yaozeyang_2014 于 2014-4-6 10:13 编辑

NSRage可以适用于那方面,实用性在哪里呢?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 一只小菜鸟 于 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}
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度。他们都是NSUInteger类型。
常见的赋值方式
NSRange r1 = {2,4};//不用
NSRange r2 = {.location = 2, .length = 4};//不用
NSRange r3 = NSMakeRange(2, 4);//掌握

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
比如需要取出某个字符串某个范围的字符串,替换某个范围的字符串,删除某个范围的字符串等等..类似的地方,这个结构体都要用到。
回复 使用道具 举报
本帖最后由 董月峰 于 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);
   

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马