iOS基础篇

NSString 的内存管理

2021-07-20  本文已影响0人  麦子_KB

前段时间看了同事的分享,于是把它记录下来

先看下这几个测试代码,关于 NSString:

NSString *a = @"abc";
NSString *b = [[NSString alloc] init];
NSString *c = [[NSString alloc] initWithString:@"abc"];
NSString *d = [[NSString alloc] initWithFormat:@"abc"];
NSString *e = [NSString stringWithFormat:@"abc"];
NSString *f = [NSString stringWithFormat:@"123456789"];
NSString *g = [NSString stringWithFormat:@"1234567890"];

执行后打印输出结果:

变量名=a,类型=__NSCFConstantString
变量名=b,类型=__NSCFConstantString
变量名=c,类型=__NSCFConstantString
变量名=d,类型=NSTaggedPointerString
变量名=e,类型=NSTaggedPointerString
变量名=f,类型=NSTaggedPointerString
变量名=g,类型=__NSCFString

可以看出 NSString 是有几种类型的:

我们可以看下面这张图:


NSString 内存管理方式

关于NSString是不是还有很多惊喜呢?欢迎补充

上一篇 下一篇

猜你喜欢

热点阅读