Car*_*Ray 1 iphone memory-management objective-c
先看看这些代码:
NSURL *url = [[NSURL alloc] initWithString:@"lasdhfkjasf"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
NSURLConnection *_conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
NSLog(@"aaaaaaaaa %d", [_conn retainCount]);
[url release];
[request release];
[_conn release];
Run Code Online (Sandbox Code Playgroud)
原来它打印"aaaaaaaaaaaaaa 2",不应该是1吗?或者那里有某种异常.然后我改变它:
NSURL *url = [[NSURL alloc] initWithString:@"lasdhfkjasf"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
NSURLConnection *_conn = [[NSURLConnection alloc] init];
NSLog(@"aaaaaaaaa %d", [_conn retainCount]);
[url release];
[request release];
[_conn release];
Run Code Online (Sandbox Code Playgroud)
我不知道发生在initWithRequest:delegate:方法中,有人知道吗?
虽然技术上不是尼古拉所关联的问题的副本,但同样适用:
不要使用retainCount属性
这可能是Apple给NSObject带来的最糟糕的事情,因为它的命名非常好,它让你觉得它实际上很有用.
查看您之前链接的问题 - Objective C NSString*属性保留计数奇怪 - 但查找第二个答案,评分最高的答案.
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |