首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏浮躁的喧嚣

    iOS中的NSString与NSMutableString

    char *c1 = "abc"; NSString *str4 = [NSString stringWithUTF8String:c1]; NSLog(@"%@",str4);//abc NSMutableString NSMutableString *str = [NSMutableString string]; NSLog(@"%@",str); //字符串拼接 [str appendString OccurrencesOfString:需要替换的字符串 //withString:用什么替换 //options:替换时的搜索方式 //range:搜索范围 //返回值:替换了多少个 NSMutableString *strM = [NSMutableString stringWithFormat:@"abcdefgbc"]; NSUInteger count = [strM replaceOccurrencesOfString

    47710编辑于 2023-11-22
  • 来自专栏猿人谷

    Objective-C: 字符串NSString与NSMutableString

    这里总结一下字符串NSString与NSMutableString。 一. NSMutableString       NSMutableString对象代表一个字符序列可变的字符串,而且NSMutableString是NSString的子类,因此前面介绍的NSString所包含的方法 ,NSMutableString都可以直接使用,NSMutableString对象也可直接当成NSString对象使用。 stringWithString,用不可变字符串创建可变字符串: //从不可变字符串创建可变字符串 mstr = [NSMutableString stringWithString *mstr; 14 NSRange substr; 15 16 //从不可变字符串创建可变字符串 17 mstr = [NSMutableString

    94060发布于 2018-01-17
  • 来自专栏浮躁的喧嚣

    iOS中的Copy

    创建一个不可变的副本(NSString\NSArray\NSDictionary) mutableCopy :创建一个可变的副本 (NSMutableDictionary\NSMutableArray\NSMutableString *copyStr = [str copy]; NSMutableString *mcopyStr = [str mutableCopy]; NSLog(@"str = %@, copyStr = %@ *str = [NSMutableString stringWithFormat:@"demo"]; NSMutableString *copyStr = [str copy]; NSMutableString *firstNameStr = [[NSMutableString alloc]initWithFormat:@"firstName-AA"]; Person *p = [[Person alloc] *lastNameStr = [[NSMutableString alloc]initWithFormat:@"lastNameStr-BB"]; p.lastName = lastNameStr;

    63410编辑于 2023-11-22
  • 来自专栏程序员充电站(itcharge)

    OC知识--Foundation框架详尽总结之『字符串类』

    NSMutableString 1. NSMutableString介绍 NSMutableString 类继承NSString类,那么NSString提供的方法在NSMutableString中基本都可以使用,NSMutableString NSMutableString和NSString的区别 NSString是不可变的,里面的文字内容是不能进行修改的 NSMutableString是可变的,里面的文字内容可以随时更改 NSMutableString 3.png 可变:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改 NSMutableString *str = [NSMutableString string]; NSLog(@ NSMutableString常用方法 拼接aString到字符串最后面- (void)appendString:(NSString *)aString; NSMutableString *str =

    90120发布于 2018-05-31
  • 来自专栏浮躁的喧嚣

    接口与API设计--22:NSCopying协议

    创建一个不可变的副本(NSString;NSArray;NSDictionary;) mutableCopy :创建一个可变的副本 (NSMutableDictionary; NSMutableArray;NSMutableString 浅拷贝:如果没有生成新对象我们称为浅拷贝,本质是指针拷贝,指向的还是同一处 深拷贝:如果生成了新的对象,我们称为深拷贝,本质就是创建了一个新的对象 NSString * str = @"demo"; NSMutableString *copyStr = [str copy]; NSMutableString *mcopyStr = [str mutableCopy]; NSLog(@"str = %@ copyStr = *str1 = [NSMutableString stringWithFormat:@"demo"]; NSMutableString *copyStr1 = [str1 mutableCopy]; NSMutableString *mcopyStr1 = [str1 mutableCopy]; NSLog(@"str = %@ copyStr = %@ mcopyStr = %@",str1

    34310编辑于 2023-11-22
  • 来自专栏码农的生活

    iOS 验证码随机出现的六位数

    这样下来我们至少需要一个数组和一个可变字符 串,所以在 .h文件中定义 @property(nonatomic,retain)NSArray * changeArray; @property(nonatomic,retain)NSMutableString alloc] initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil];//存放十个数,以备随机取 NSMutableString getStr = [[NSMutableString alloc] initWithCapacity:5]; self.changeString = [[NSMutableString 作为下标值取数组里面的数放到一个可变字符串里,在存放到自身定义的可变字符串 getStr = self.changeArray[index]; self.changeString = (NSMutableString

    73700发布于 2021-10-31
  • 来自专栏月亮与二进制

    iOS中的浅复制与深复制

    像NSString这种对象,还有一个相关的叫NSMutableString。所以在非集合对象中又可以分为可变对象和不可变对象。 ),copy和mutableCopy都是深复制,都会创建一个新的同样的内容来返回,但是要注意,copy返回的是不可变对象,也就是说即使你对一个NSMutableString做copy操作,返回给另一个NSMutableString ,然后去对这个NSMutableString做变化操作,会报错。 = [string mutableCopy];// 深复制 NSMutableString *string = [NSMutableString stringWithString: @"origin "]; NSString *stringCopy = [string copy];// 深复制 NSMutableString *mStringCopy = [string copy];// 深复制 NSMutableString

    91220发布于 2021-11-23
  • 来自专栏小黑娃Henry

    OC底层探索15-Strong和Copy区别浅谈OC底层探索15-Strong和Copy区别浅谈

    NSMutableString场景一 NSMutableString *newString = [NSMutableString stringWithFormat:@"newString"]; _strongStr NSMutableString场景二 NSMutableString *newString = [NSMutableString stringWithFormat:@"newString"]; self.strongStr 属性的set方法是调用了新值的copy协议,也就是调用了NSMutableString的copyWithZone方法 4. NSMutableString的copyWithZone方法 Founation苹果并没有开源,所以需要别的途径。 发现最终调用了NSMutableString的allocWithZone 5. NSMutableString的allocWithZone ? 6. NSAllocateObject方法 ?

    1.1K10发布于 2021-08-09
  • 来自专栏BY的专栏

    iOS如何使用MD5加密

    UTF8String]; unsigned char md5c[16]; CC_MD5(myPassword, (CC_LONG)strlen(myPassword), md5c); NSMutableString *md5Str = [[NSMutableString alloc] initWithCapacity:100]; //md5c[1] -> 0x16; for (int i = 0; i < UTF8String]; unsigned char md5c[16]; CC_MD5(myPassword, (CC_LONG)strlen(myPassword), md5c); NSMutableString *md5Str = [[NSMutableString alloc] initWithCapacity:100]; // md5c[1] -> 0x16; [md5Str appendFormat *md5Str = [[NSMutableString alloc] initWithCapacity:100]; // md5c[1] -> 0x16; [md5Str appendFormat

    1.6K40发布于 2018-05-11
  • 来自专栏技术总结

    iOS 复制知识点总结

    都遵循以下准则: copy返回immutable对象;所以,如果对copy返回值使用mutable对象接口就会crash; mutableCopy返回mutable对象; 下图详细阐述了NSString、NSMutableString 下面看一下非集合类NSString对象拷贝的例子: copy NSString *string = @"origin"; NSString *stringCopy = [string copy]; NSMutableString mutableCopy NSMutableString *string = [NSMutableString stringWithString: @"origin"]; //copy NSString *stringCopy = [string copy]; NSMutableString *mStringCopy = [string copy]; NSMutableString ,虽然程序传入的NSMutableString,但程序调用该参数的copy方法得到的是不可变副本。

    847110发布于 2018-05-22
  • 来自专栏音视频进阶之旅

    音视频开发(一)-流媒体数据传输RTSP

    *dataString = [NSMutableString string]; // [dataString appendString:@"OPTIONS "]; [dataString *dataString = [NSMutableString string]; [dataString appendString:[NSString stringWithFormat:@"DESCRIBE *dataString = [NSMutableString string]; [dataString appendString:[NSString stringWithFormat:@"SETUP *dataString = [NSMutableString string]; [dataString appendString:[NSString stringWithFormat:@"SETUP *dataString = [NSMutableString string]; [dataString appendString:[NSString stringWithFormat:@"PLAY

    1.2K30编辑于 2022-09-24
  • 来自专栏日常技术分享

    iOS Strong和Copy的区别

    原因:这里的copy是浅拷贝,并没有生成新的对象 NSMutableString场景一 // 使用NSMutableString直接赋值 NSMutableString *originStr = [NSMutableString 继续往下看 NSMutableString场景二 // 第二种场景:用NSMutableString直接赋值 NSMutableString *originStr = [NSMutableString 2.当源字符串是NSMutableString时,strong只是将源字符串的引用计数加1,而copy则是对原字符串做了次深拷贝,从而生成了一个新的对象,并且copy的对象指向这个新对象。 所以,如果源字符串是NSMutableString的时候,使用strong只会增加引用计数。但是copy会执行一次深拷贝,会造成不必要的内存浪费。 但是,我们一般声明NSString时,也不希望它改变,所以一般情况下,建议使用copy,这样可以避免NSMutableString带来的错误。

    1.1K40发布于 2018-09-13
  • 来自专栏进步博客

    使用copy声明NSString属性

    选择使用copy的理由是,NSString属性可能被传入一个NSString实例,也可能是一个NSMutableString实例。 当传入了一个NSMutableString实例时,字符串的值可能会在背后悄悄变化。 NSObject @property (strong, nonatomic) NSString *title; @end 在另一个类中,我们有一个这样的方法: - (void)stringExample { NSMutableString *bookTitle = [NSMutableString stringWithString:@"Best book ever"]; Book *book = [[Book alloc] init

    58820发布于 2018-08-01
  • 来自专栏iOS技术杂谈

    NSCopying和NSCoding对象序列化反序列化基础详解你要知道的NSCopying、NSCoding协议及对象序列化和反序列化都在这里

    *mutableString = [[NSMutableString alloc] initWithString:@"Jiaming Chen"]; NSString *copyMutableString = [mutableString copy]; NSMutableString *mutableCopyMutableString = [mutableString mutableCopy alloc] initWithString:@"Jiaming Chen"]; NSString *copyStr = [str copy]; NSMutableString 第二组创建了一个NSMutableString类型的对象,同样获取了不可变和可变副本对象,输出的结果发现三者的地址都不同了。 第三组实验使用多态的方式创建了一个编译时类型为NSString而运行时为NSMutableString的对象,并获取可变和不可变副本对象,输出地址发现三者的地址都不同了。

    1.7K90发布于 2018-04-10
  • 来自专栏网罗开发

    iOS 进阶之深拷贝和浅拷贝

    下面先看个非集合类immutable对象拷贝的例子 NSString *string = @"origin"; NSString *stringCopy = [string copy]; NSMutableString 通过查看内存,可以看到 stringCopy 和 string 的地址是一样,进行了指针拷贝;而 stringMCopy 的地址和 string 不一样,进行了内容拷贝; 再看mutable对象拷贝例子: NSMutableString *string = [NSMutableString stringWithString: @"origin"]; //copy NSString *stringCopy = [string copy] ; NSMutableString *mStringCopy = [string copy]; NSMutableString *stringMCopy = [string mutableCopy]; 当属性类型为 NSString 时,经常用此特质来保护其封装性,因为传递给设置方法的新值有可能指向一个 NSMutableString 类的实例。

    1.6K20发布于 2021-01-29
  • 来自专栏Swift社区

    京东七鲜一面总结

    这一点是完全可以的,因为 NSMutableString 的父类就是 NSString。 NSMutableString 是一个可以改变的对象,如果我们用 strong 修饰,NSString 对象强引用了 NSMutableString 对象。 假如我们在其他的地方修改了这个 NSMutableString 对象,那么 NSString 的值会随之改变。 ; 3、对 NSMutableString 进行 copy -> 这是一个深拷贝,拷贝出来一个不可变的对象; 4、对 NSmutableString 进行 mutableCopy -> 这是一个深拷贝 //如何获取父视图 UIResponder *nextResponder = gView.nextResponder; NSMutableString *p = [NSMutableString stringWithString

    60420发布于 2021-11-26
  • 来自专栏wOw的Android小站

    [Objective-C] Copy 和 MutableCopy

    非集合类对象的copy与mutableCopy //NSString & NSMutableString NSString *strA = @"origin"; NSLog [strA copy]; NSLog(@"strCopy pointer: %p content: %@", strACopy, strACopy); NSMutableString *strB = [NSMutableString stringWithString:@"mutable string"]; NSLog(@"strB pointer: %p content: %@", strB, strB); NSMutableString *strBCopy = [strB copy]; NSLog(@"strBCopy pointer: %p content: %@", strBCopy, strBCopy); NSMutableString *strBMCopy = [strB mutableCopy

    77820发布于 2018-09-18
  • 来自专栏mukekeheart的iOS之旅

    OC基础--字符串

    Objective-C里核心的处理字符串的类就是NSString和NSMutableString这两个类,这两个类完成了Objective-C中字符串大部分功能的处理,我们今天的重点就是这两个类了。 NSMutableString是动态的字符串,可以动态的添加,修改,删除等,并且NSMutableString继承自NSString,所以NSString中的方法在NSMutableString都可以使用 *mutableStr1 = [[NSMutableString alloc] initWithCapacity:20]; //2.初始化容量为Capacity大小的字符串 (不需要手动释放内存 ) NSMutableString *mutableStr2 = [NSMutableString stringWithCapacity:20]; 2.2 可变字符串扩展方法 NSMutableString *str = [NSMutableString stringWithString:@"string"]; //////////插入////////// [str insertString

    1.3K40发布于 2020-09-07
  • 来自专栏日常技术分享

    ios 字符串逆转

    - (NSString *)stringByReversed:(NSString *)str { NSMutableString *mutableSgtr = [[NSMutableString

    47320发布于 2018-10-12
  • 来自专栏mukekeheart的iOS之旅

    OC学习12——字符串、日期、日历

    Foubdation框架是Cocoa编程、IOS编程的基础框架,包括代表字符串的NSString(代表字符序列不可变的字符串)、NSMutableString(代表字符序列可变的字符串),以及代表日期、 代表字符序列可变的字符串,而且NSMutableString是NSString的子类,因此前面介绍的NSString所包含的方法,NSMutableString都可以直接使用,NSMutableString 此外,NSMutableString还提供了很多可以修改字符串所包含字符序列的方法。 对象 8 NSMutableString* str = [NSMutableString 9 stringWithString:@"Hello"]; 10 * book = [NSMutableString 7 stringWithString:@"疯狂iOS讲义"]; 8 // 复制book字符串的可变副本

    2.3K70发布于 2018-02-27
领券