黑马程序员技术交流社区

标题: 框架 中 的 NSString [打印本页]

作者: m573555543    时间: 2014-5-7 06:09
标题: 框架 中 的 NSString
本帖最后由 m573555543 于 2014-5-24 18:06 编辑
  1. // NSMutableString  是可变字符串  如果想要把字符串的内容改写。就得使用它。
  2.     NSMutableString *s1 = [NSMutableString stringWithFormat:@" 我要疯la"];
  3.     [s1 appendString:@"疯了+1\n疯le+2\n"];
  4.         
  5.     NSRange range = [s1 rangeOfString:@"我要疯la"];
  6.     [s1 deleteCharactersInRange:range];
复制代码


答案是 这个

我想问的是 range 中的 s1 跟 NSMutableString冲突么 ?如果冲突 为什么我改成s 显示 NSPange 错误?如果不冲突 那  s1  和 range 是是什么意思?


如何输出 range 。直接输出 range 无任何答案显示

作者: 脸皮猴    时间: 2014-5-7 09:40
NSRange吗?这是个结构体。不是一个对象。你想怎么输出勒?你可以说下你想实在的功能么?
作者: D调的沉默    时间: 2014-5-7 09:51
表示不太明白你的问题啊,我就知道NSrange是结构体,一个结构体怎么会跟NSMUtableString对象冲突呢?NSMutableString是一个可变字符串对象啊。range是一个结构体啊,里面有两个成员变量
  1. typedef struct _NSRange {
  2.       NSUInteger location;
  3.       NSUInteger length;
  4. } NSRange;
复制代码

对于NSMutableString是个对象,你直接去查头文件去看它的定义和解释
作者: 兰闻天    时间: 2014-5-7 09:53
// NSMutableString  是可变字符串  如果想要把字符串的内容改写。就得使用它。
    NSMutableString *s1 = [NSMutableString stringWithFormat: @" 我要疯la"];
    [s1 appendString: @"疯了+1\n疯le+2\n"];
        
    NSRange range = [s1 rangeOfString: @"我要疯la"]; // 不冲突的,这个s1就是你上面的字符串啊,这个是查找 "我要疯la" 在s1字符串中的位置啊,怎么可能冲突啊,返回的是 "我要疯la" 在字符串s1的第一个位置和字符串长度,然后就可以根据这个返回值,进行下面的把 "我要疯la" 从s1中删除
    [s1 deleteCharactersInRange:range];
作者: m573555543    时间: 2014-5-7 09:57
兰闻天 发表于 2014-5-7 09:53
// NSMutableString  是可变字符串  如果想要把字符串的内容改写。就得使用它。
    NSMutableString *s1 = ...

明白了 。谢谢




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