Din*_*aja 6 objective-c init alloc ios automatic-ref-counting
实际上我正在开发一个ARC启用的项目.我知道使用alloc并init正在拍摄ownership物体.我知道,如果我创建一个像这样的字符串
NSString *myString = [[NSString alloc]initWithFormat:@"Something"];
Run Code Online (Sandbox Code Playgroud)
然后我需要release的myString自己.如果我使用ARC,该怎么办?我无法释放自己.它会造成泄漏吗?或者我应该不创建这样的对象?
我也可以像下面的代码一样创建一个字符串.
NSString *myString = [NSString stringWithFormat:@"Something"];
Run Code Online (Sandbox Code Playgroud)
但是我需要使用哪种类型的ARC启用项目?如果我使用第一种类型会发生什么?
Dru*_*erB 15
如果使用ARC,则release在编译时将为您添加所有必要的调用.它不会泄漏.
和...之间的不同
NSString *myString = [[NSString alloc]initWithFormat:@"Something"];
Run Code Online (Sandbox Code Playgroud)
和
NSString *myString = [NSString stringWithFormat:@"Something"];
Run Code Online (Sandbox Code Playgroud)
是第一个是myString在该块中最后一次引用后自动释放的,而第二个是自动释放的实例,只会在运行循环结束时释放.这不是一个很大的区别,但是如果你使用了很多对象,尽量避免使用自动释放的对象来保持较低的内存使用率.
| 归档时间: |
|
| 查看次数: |
5173 次 |
| 最近记录: |