mit*_*esh 0 iphone memory-management objective-c ios4 retaincount
据我所知,如果一个对象的保留计数变为0,则会调用dealloc.但是我将保留计数设置为-1.这是什么意思?
我使用以下代码 -
Demo *obj1 = [[Demo alloc] init];
NSString *s = [[NSString alloc] initWithString:@"mithilesh"];
NSString *s1 = [NSString stringWithString:s];
[s release];
object_setInstanceVariable(obj1, [propertyName cString], s1);
//printing retain count
NSLog(@"retain count of name = %i",[obj1.name retainCount]);
Run Code Online (Sandbox Code Playgroud)
输出:
retain count of name = -1
Run Code Online (Sandbox Code Playgroud)
方法stringWithString返回的字符串:何时获取释放?
Lil*_*ard 11
这意味着你需要停止呼叫-retainCount.它纯粹是一个调试功能,除非你是一名处理系统框架或编译器的Apple工程师,否则你可能没有任何关于该功能的业务.
也就是说,你在这里看到的INT_MAX被解释为签名号码.可能,听起来你已经得到了一个恒定的字符串@"mithilesh".常量字符串不参加单身-retain和-release和-retainCount的INT_MAX就是这样的指示.但这只是猜测,你应该停止看-retainCount.
如果你不相信我,也许你会相信Bill Bumgarner,当他说retainCount没用时.
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |