Sar*_*gon 3 cocoa memory-management objective-c literals nsstring
我正在阅读它所说的内存管理规则
- (void)printHello {
NSString *string;
string = [[NSString alloc] initWithString:@"Hello"];
NSLog(@"%@", string);
[string release];
}
Run Code Online (Sandbox Code Playgroud)
你有所有权并且必须释放string
,但我很好奇@"Hello"
.@" "
是创建和的语法NSString
,它是一个对象.那不是泄露了吗?
小智 10
@"…"
是一个文字实例NSString
.当编译器看到一个文字字符串时,它会将字符串映射到二进制文件(例如您的程序),并且在NSString
加载二进制文件时(例如,当您运行程序时)该字符串可用作对象.您不必管理文字字符串占用的内存,因为它们是二进制文件的固有部分 - 它们始终可用,它们永远不会被释放,您不必担心管理它们的内存.
归档时间: |
|
查看次数: |
895 次 |
最近记录: |