一个简单的程序:
-(void)doSomething {
NSLog(@"self rc=%d", [self retainCount]);
[self performSelector:@selector(doMe:) withObject:nil afterDelay:0 inModes:[NSArray arrayWithObject:NSDefaultRunLoopMode]];
NSLog(@"self rc=%d", [self retainCount]);
}
-(void)doMe:(id)object {
NSLog(@"i'm done");
NSLog(@"self rc=%d", [self retainCount]);
}
Run Code Online (Sandbox Code Playgroud)
输出:
self rc=1
self rc=2
i'm done
self rc=2
Run Code Online (Sandbox Code Playgroud)
为什么保留计数增加到并保持在2?