use*_*200 0 objective-c nsstring ios
NSString *str = [[NSString alloc]init];
str = [str initWithString:@""];
Run Code Online (Sandbox Code Playgroud)
这段代码崩溃了.如果我使用如下,那就没关系.
NSString *str = [[NSString alloc]initWithString:@""];
Run Code Online (Sandbox Code Playgroud)
initWithString分配后我不能用吗?
您正在重新初始化已通过-init第一行调用初始化的内存.
NSString对象是不可变的,这意味着它们的内部字符缓冲区不能以任何方式修改.如果您需要此功能,请使用NSMutableString.
因此,你的代码对我没有意义,因为没有办法修改字符串,为什么用空字符串创建它?
我建议NSMutableString像这样创建一个对象:
NSMutableString *str = [[NSMutableString alloc] init];
Run Code Online (Sandbox Code Playgroud)
然后,您可以淤泥与周围用各种方法的串(-setString:,replaceCharactersInRange:withString:,等)
我没有看到任何其他原因,你为什么要创建一个字符串(你拥有不少),用空缓冲区初始化.
| 归档时间: |
|
| 查看次数: |
7567 次 |
| 最近记录: |