技术之路任重道远,且行且珍惜!
个人认为:提有问题,经过思考和实践,最后分析总结,这样理解的比较深刻。因此按照这个顺序来说一下字符串的相关内存管理的问题!
提出问题
- aString 和bString的内存地址是否一致?
NSString *aString = @"234";
NSString *bString = @"234";
- 在Xcode中会有哪些警告提示?
NSString *cString = [NSString stringWithString:@"234"];
NSString *dString = [NSString stringWithString:@"234"];
- 如下四个变量(aString、bString、cString、dString)的内存地址是否一致?
NSString *aString = @"234";
NSString *bString = @"234";
NSString *cString = [NSString stringWithString:@"234"];
NSString *dString = [NSString stringWithString:@"234"];
- 如下四个变量(aString、bString、cString、dString)的实际类型是什么类型?你会说NSString吗?
NSString *aString = @"234";
NSString *bString = @"234";
NSString *cString = [NSString stringWithString:@"234"];
NSString *dString = [NSString stringWithString:@"234"];
- aString 和bString的内存存储区域是哪一块?栈区?堆区?数据区?代码区?
NSString *aString = @"234";
NSString *bString = @"234";
- 变量eString和fString的内存存储区域是哪一块?栈区?堆区?数据区?代码区?
NSString *eString = [[NSString alloc]initWithString:@"234"];
NSString *fString = [[NSString alloc]initWithString:@"234"];
- aString 和bString的isa指向什么类型?
NSString *aString = @"234";
NSString *bString = @"234";
- formatString1、formatString2、nString内存地址是否一致?实际类型是什么?存储区域?
NSString *formatString1 = [NSString stringWithFormat:@"234"];
NSString *formatString2 = [NSString stringWithFormat:@"234"];
NSString *nString = [[NSString alloc]initWithString:@"234"];
- mString1和mString2的具体类型是什么?内存存储区域是哪一块?isa指向是哪些?
NSMutableString *mString1 = [NSMutableString stringWithString:@"234"];
NSMutableString *mString1 = [NSMutableString stringWithString:@"234"];
- 看下面的代码
@interface SBObject: NSObject
@property (nonatomic, copy) NSMutableString *str;
@end
@implementation SBObject
- (void)test {
NSMutableString *formatString3 = [NSMutableString stringWithFormat:@"2345"];
self.str = formatString3;
[self.str respondsToSelector:@selector(replaceCharactersInRange:withString:)];
}
@end
试问下面这行代码的结果是YES还是NO?
[self.str respondsToSelector:@selector(replaceCharactersInRange:withString:)];
- 字符串对象底层有几种类型?
看到的各位朋友可自行试验一下?最近比较忙会陆续将剩下的补充完成?