关于NSString的几个方法的区别

初始化字符串,方法1(快速初始化)

NSString *string0 =@"niahoma";

NSString *string1 =@"niahoma";

//注意:上面的string0 和string1 是指针和内容都 相等 的。

if(string0 == string1){

NSLog(@"string0和string1是指针和内容都是相等的");

}else{

NSLog(@"string0和string1是指针和内容都是bu相等的");

}

初始化字符串,方法2

NSString *string2 = [NSString stringWithString:string1];

if(string1 == string2){

NSLog(@"string1和string2是指针和内容都是相等的");

}else{

NSLog(@"string1和string2是指针和内容都是bu相等的");

}

///注意:

// stringWithString 是通过浅拷贝的方式得到字符串string2的,浅拷贝只拷贝指针不拷贝对象,所以其指针是相等的,内容也相等。

// 不可变字符串初始化方法[NSString stringWithString:@“asdf”];已经过时了,在新的Xcode中已经不可用。@“”部分已经改为NSString对象,但是在可变数组中是可用的,如:[NSMutableString stringWithString:@"nihao"];是可行的。

//        NSString *string2 = [NSString stringWithString:@"ahdo"];词句在最新的Xcode中已经不可用。

初始化字符串,方法3

NSString *string3 = [NSString stringWithFormat:@"nihao%@,也可以写中文%d",@"hah",45];

//stringWithFormat可以格式化输入字符串,便于将其他类型转化为字符串类型。

//在下面的初始化字符串中,string4和string5的指针是 不相等 的。

NSString *string4 = [NSString stringWithFormat:@"nihaohah也可以写中文45"];

NSString *string5 = [NSString stringWithFormat:@"nihaohah也可以写中文45"];

if(string4 == string5){

NSLog(@"string4和string5是指针和内容都是相等的");

}else{

NSLog(@"string4和string5是指针和内容都是bu相等的");

}

//在OC中stringWithFormat会新申请一片空间并初始化字符串,所以每一个用stringWithFormat方法得到的字符串其指针都是不相同的;

//而stringWithString是通过浅拷贝的方式得到字符串的,浅拷贝只拷贝指针不拷贝对象,所以其指针是相等的,内容也相等;

//快速初始化是首先根据一定的方法(此方法和NSSet(集合)中的存放对象的方法一样都是hash算法)在内存中查找是否已经存在了这样的一个对象,若是存在则放回此对象的指针,若不存在,则根据一定的方法找到一片内存空间存放对象,并返回指针。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 任何编程语言对字符串的操作是必不可少的,简单的字符串处理我们可以借助OC中NSString封装好的字符串处理...
    超仔不叫superman阅读 5,890评论 0 0
  • 一、类和对象 1.定义:类是具有相同特征和行为的事物的抽象,对象是类的具体化,类是对象的类型。 2.面向对象的三大...
    陈亮宇阅读 3,021评论 1 6
  • //将NSData转化为NSString NSString* str = [[NSString alloc] in...
    脱脱夫斯基阅读 4,878评论 0 52
  • <1>常用创建方法//实例化方法创建 (instancetype)initWithString:(NSString...
    DVWang阅读 4,340评论 0 0
  • //将NSData转化为NSString NSString* str = [[NSString alloc]...
    吾是小马哥阅读 7,227评论 0 3

友情链接更多精彩内容