【发布时间】:2012-10-04 17:14:09
【问题描述】:
我正在做一些关于增加引用计数的研究。请帮助找到它。 下面是示例代码和研究,我正在做下面每一行的引用计数。
.h 文件
NSArray *tempArray;
@property (nonatomic, retain) NSArray *tempArray;
.m 文件
@synthesize tempArray;
-(void) sampleFunction
{
NSArray *myArray = [[NSArray alloc] init]; // Thinking reference count increases to "1"
tempArray = myArray;// reference count increases and tempArray gets retain count "1" now.
tempArray = myArray;// reference count increases and tempArray gets retain count "2" now.
tempArray = [NSArray arrayWithObject:@"SomeString"]; // retain count = ?
}
我知道此代码可能无法正常运行,但这仅用于研究在此类情况下引用计数会发生什么。我尝试打印retainCount,但没有显示正确的结果。请告诉我引用计数是如何在每一行上工作的?
【问题讨论】:
-
在
NSObject Protocol Reference中了解retainCount。 -
tempArray = myArray;并没有完全增加你的保留数量。只有self.tempArray = myArray;会。 -
@H2CO3,您似乎在这里草率下结论;没有提到方法
retainCount,只有保留计数的基本思想和一种内存管理形式。 -
@JamesWebster 仅当您阅读了问题...“我尝试打印 retainCount,但它没有显示正确的结果”
标签: ios