2
A
回答
9
它不仅是可能的,这是非常容易的事:
NSLog(@"retain count=%d",[obj retainCount]);
0
在调试器控制台,您可以键入:打印(unsigned int类型)的事情retainCount]
1
我想你可能会遇到NSString的问题,其中保留和释放消息可以发送到字符串常量,但他们实际上没有效果,也不会改变对象retainCount。下面的代码工作,将其更改为使用NSString并保留/释放不起作用。
代码:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSMutableString *myString = [[NSMutableString alloc] initWithString:@"AB"];
NSLog(@"RC: %d", [myString retainCount]);
[myString retain];
NSLog(@"RC: %d", [myString retainCount]);
[myString release];
NSLog(@"RC: %d", [myString retainCount]);
[myString release];
[pool drain];
return 0;
}
输出:
Running…
TESTBED[12306:a0f] RC: 1
TESTBED[12306:a0f] RC: 2
TESTBED[12306:a0f] RC: 1
加里
相关问题
- 1. 你可以从以下邮件列表中学习吗?
- 2. 帮助学习asp.net
- 3. 练习建议,以帮助学习C#中的多线程#
- 4. 单声道OSX可以学习C#吗?
- 5. 我可以发送数据到webview吗?
- 6. 练习自学帮助
- 7. PHP难以学习吗?
- 8. 对于iphone开发者,你需要学习可可触摸吗?
- 9. 学习python难题练习20帮助
- 10. 你可以发布到PUT signedUrl吗?
- 11. 有人可以帮助python初学者吗?
- 12. 你可以帮助我使用这个导航栏吗?
- 13. 你可以有subprocesss.Popen在stdout/stderr中保留颜色吗?
- 14. 你可以telnet到ssh吗?
- 15. 你可以在使用MPI_Type_create_subarray发送时转置数组吗?
- 16. 你可以建议可用于学习CSS的最佳截屏吗?
- 17. netbeans可以学习类的php自定义函数参数吗?
- 18. 你如何帮助人们学习逻辑?
- 19. 有人可以帮助我吗?
- 20. 任何人都可以帮助我吗?
- 21. Java注释可以帮助我吗?
- 22. 我想学习adobe flex4。任何人都可以帮助我如何开始?
- 23. 你可以帮助解释在d3 ..... packages.root(类)以下构造?
- 24. 哪里可以找到帮助科学的编程项目?
- 25. mod_rewrite可以保留双斜杠吗?
- 26. 无需服务器端帮助,Flash可以保存内容吗?
- 27. 我可以向Intent.ACTION_CALL发送数据吗?
- 28. junit测试期间发生错误。你可以帮我吗?
- 29. 如果不涉及“学习”,算法可以分类为“无监督学习”吗?
- 30. 需要学习一些JavaScript代码!你能帮我吗?
注意保留计数的实现细节,他们可以和方式,使没有意义的外部观察者做的工作。换句话说,这不是特别有用的事情。更好地阅读内存管理指南(https://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/index.html)并遵循简单的所有权规则。 – Chuck 2009-09-10 20:35:13
在技术上它应该是%u,因为retainCount返回一个NSUInteger(实际上它永远不会变得足够重要,尽管如此) – newacct 2009-09-10 20:42:37
@Chuck:在技术上你是正确的,但在现实生活中,它有时可以帮助你确定保留/释放问题。 – 2009-09-10 20:46:49