首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在这种情况下,NSMutableString是否比NSString更有效?

在这种情况下,NSMutableString 和 NSString 之间的效率差异取决于使用情况。

NSMutableString 允许在字符串上直接进行修改和操作,而 NSString 只允许进行读取和写入操作。因此,在需要进行频繁修改的情况下,使用 NSMutableString 可以提高效率。

另一方面,NSString 提供了更多的方法来处理字符串,例如查找、替换、截取等,而 NSMutableString 的方法有限。因此,在需要更高级的字符串操作时,使用 NSString 可能更合适。

总的来说,NSMutableString 和 NSString 都有其优点和适用场景。如果您需要在字符串上进行频繁的修改操作,使用 NSMutableString 可能更合适。如果您需要更高级的字符串操作和处理方法,使用 NSString 可能更好。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

NSString与路径 是否为绝对路径- (BOOL)isAbsolutePath; // 其实就是判断是否以/开头 // NSString *str = @"/Users/Walkers/Desktop...NSMutableString介绍 NSMutableString 类继承NSString类,那么NSString提供的方法NSMutableString中基本都可以使用,NSMutableString...好比一个字符串链表,它可以任意的动态字符串中添加字符串、删除字符串、指定位置插入字符串,使用它来操作字符串会更加灵活。...*str = [NSMutableString stringWithFormat:@"http://jianshu.com/img/Walkers"]; // 一般情况下利用rangeOfString...字符串使用注意事项 @"abc"这种方式创建的字符串始终是NSString,不是NSMutalbeString。所以下面的代码创建的还是NSString,此时使用可变字符串的函数,无法操作字符串。

61520

编码篇-开发中关于数字的那些事儿

本文文章结构 现实中使用数字场景下存在的误差 对于数字要求比较严格的莫过于跟钱有关的 单价、总价等, 亦或者 浮点数总数中占有的百分计算,这些都是对价格要求比较严格的, 而使用 floatValue...要回答这点,我们先要明白这是浮点数计算机中的存储方式就决定的。先来了解下浮点数计算机中的存储方式。...double类型数据的存储方式 注意这个例子的特殊性:它的小数部分正好可以用有限长度的2进制小数表示,因此,而且整个有效数字部分a的总长度小于23,因此它精确的表示了10.625,但是有的情况下有效数字部分的长度可能超过...,一般为NO raiseOnOverflow 发生溢出错误时是否抛出异常,一般为NO raiseOnUnderflow 发生不足错误时是否抛出异常,一般为NO raiseOnDivideByZero 被...stringWithString:num]; NSMutableString *newstring = [NSMutableString string]; while (count

1.2K10

老司机踩坑系列————中文排序

///汉字转拼音 -(NSString *)transferChineseToPinYin:(NSString *)string { NSMutableString *mutableString...到这想填坑其实还可以,只要在添加空格以后再检验是否有连续空格,替换成一个空格就好了。。。不过这种打补丁,让代码越来越失去可维护性的做法老司机觉得是个隐患。。。所以老司机不得不想出第二个方法。...看起来似乎最初的想法省了很多事,老司机心里美滋滋。...其他情况下都可以正常返回子串。 2017.05.25更新 有同学问具体是怎么实现的?老司机将中文拼音比较写在了字符串的扩展中。...后来查到gb编码本来就是用拼音排序的就hack了一下:stringByAddingPercentEscapesUsingEncoding:后面用16位编码 将中文转为ascii来比较 简洁。

1.9K50

声明NSString属性的时候到底要不要采用copy限定词?

封装的场景中,我们声明一个NSString类型的属性,它可能会指向NSString类型的变量,也可能会指向NSMutableString的对象,此时必须要使用copy,这一点问题没有。...但是日常的业务场景中,我们遇到的场景基本都是确定的,我们会明确地知道最终传递给NSString类型的指针的变量到底是NSString还是NSMutableString,这样的话,我们最终赋值的时候就完全可以手动将变量转换一下...类型还是NSMutableString类型,如果是可变类型那么就给其copy一下再赋值给NSSTring类型的指针即可。...这一点在理论上讲是没有毛病的,但是它更多的要求的是程序员写代码过程中要有一个统一的自主意识,而这种统一的自主意识的养成是非常困难的,而且不稳固。...比如,团队中新进来一个程序员,那么他这种意识的培养需要一定的时间;再比如,某一个程序员写代码过程中一不注意忘记了这条意识,将mutableString赋值给了NSString,那么后期将很难查找到问题

20740

iOS Strong和Copy的区别

*copyyStr; 下面我们分别以NSStringNSMutableString举例 NSString场景一 // 使用NSString直接赋值 NSString *originStr = [...PropertyDemo[2451:226039] copyyStr 对象地址: 0x60400025ff20 ,对象指针地址:0x7f9561c12cc8 ,对象的值:hello,originStr 结论:这种情况下...但是,我们一般声明NSString时,也不希望它改变,所以一般情况下,建议使用copy,这样可以避免NSMutableString带来的错误。...atomic: 这个属性是为了保证多线程的情况下,编译器会自动生成一些互斥加锁的代码,避免该变量的读写不同步的问题。...__weak 指向的内存销毁后,可以将指针变量置为 nil,这样更加安全。 __weak 修饰的变量地址被释放后,为何被置为 nil?

84040

iOS @property探究(一): 基础详解你要知道的@property都在这里

,会造成无限递归 return _name; } @end 使用自定义的getter和setter一般是用来实现懒加载(lazy load),很多情况下很常用,比如:创建一个比较大的而又不一定会使用的对象...atomic/nonatomic 指定合成存取方法是否为原子操作,可以理解为是否线程安全,但在iOS上即时使用atomic也不一定是线程安全的,要保证线程安全需要使用锁机制,超过本文的讲解范围,可以自行查阅...而不使用NSString是因为NSString会缓存字符串,后面置空的时候实际没有被销毁 NSMutableString *s = [[NSMutableString alloc] initWithString...所赋的值引用计数为0被销毁后,weak修饰的属性会被自动置为nil能够有效防止野指针错误。 weak常用在修饰delegate等防止循环引用的场景。...前文介绍copy修饰符的时候讲过,修饰NSString这样的不可变对象的时候使用copy修饰,但其实当给对象赋一个NSString时仍旧只复制了指针而不是拷贝内容,原因同上。

1.6K90

iOS-Foundation框架中常用的类

; 使用这种方式创建的字符串是1个空的字符@""。...str1与str2指向相同的地址 注意:存储常量区的数据不会被回收. 所以存储常量区的字符串对象也不会被回收. NSString类的常用方法 使用拼接的方式创建1个NSString对象。...判断字符串是否以指定的字符串开头 - (BOOL)hasPrefix:(NSString *)str; 判断字符串是否以指定的字符串结尾 - (BOOL)hasSuffix:(NSString *)...所以,判断主字符串中是否包含子字符串,只需要判断返回的NSRange结构体变量的length是否为0就可以。 主串中搜索子串.从后往前搜索. 第1次匹配的子串....:@""] NSMutableString NSMutableString为可变的字符串,与NSString不同的是,无论NSMutableString修改多少次,对象始终只有一个,每次修改字符串的时候

1.7K100

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

这就是我们探索的起点 接下来一步一步解释: self.strongStr&_strongStr两种方式的区别 这个相信结论大家都是知道的: self.strongStr这种方式是调用了set方法;...所以日常使用时,建议多使用_strongStr这种方式.(虽然性能提升的非常有限,但态度要有【狗头】) 通过clang来查看copyStr变量的两种不同写法编译后的源码: ?...NSMutableString并没有找到对应的copyWithZone,继续向上找到父类NSString的copyWithZone。...结论: 场景3、4时,通过copy修饰的NSString、NSArray、NSDictory类型变量,进行Set方法时,会调用objc_setProperty函数,而最终会调用新值对应类型(NSMutableString...通过第6步可知,就是完成了一次深拷贝,从而生成了一个新的对象,并且copy的对象指向这个新对象; 场景1、2时,新值的类型是NSStringcopy时进行了浅拷贝 一般声明不可变类型,就是不希望它变化

85710

京东七鲜一面总结

可靠传输:在网络正常的情况下,数据不会丢失。面向字节流:传输灵活,但是 TCP 的传输存在粘包问题,没有明显的数据约定。 正式发送请求之前,需要先建立 TCP 连接。...深拷贝:是对对象本身的拷贝;浅拷贝:是对指针的拷贝; oc 中父类的指针可以指向子类的对象,这是多态的一个特性 声明一个 NSString 对象,让它指向一个 NSMutableString 对象,...这一点是完全可以的,因为 NSMutableString 的父类就是 NSString。...NSMutableString 是一个可以改变的对象,如果我们用 strong 修饰,NSString 对象强引用了 NSMutableString 对象。...假如我们在其他的地方修改了这个 NSMutableString 对象,那么 NSString 的值会随之改变。

38020

Objective-C属性(property)的特性(attribute)

@property (copy, nonatomic) NSString *name; 这种写法,大家肯定都写过,不过,后面跟着的这个括号又是什么玩意儿呢?...如上所述,attributes有三种类型: 1.Atomicity(原子性) 比较简单的一句话理解就是:是否给setter和getter加锁(是否保证setter或者getter的每次访问是完整性的)。...; // 或者可以省略strong, 编译器默认取用strong @property (strong, nonatomic) NSString *nameNonCopy; 另一个类中,用一个NSMutableString...*nameString = [NSMutableString stringWithFormat:@"Antony"]; // 用赋值NSMutableStringNSString赋值 testClass1...如果用copy修饰NSMutableString赋值的时候会报如下警告: Incompatible pointer types assigning to 'NSMutableString *' from

1.9K30
领券