我有点像可可新手,我根本无法弄清楚为什么我在使用此代码的 Instruments 中的泄漏图中会出现峰值。这似乎是一个小泄漏(即 16 字节,泄漏的对象是“Generalblock-16”;这是唯一泄漏的对象,并表示 Self 100%),无论我选择仅 1 个文件还是12,000 个文件。我已经双击了仪器的扩展详细信息视图中显示的堆栈跟踪的每一行,它不会引导我进入代码中的任何行。
提前感谢您提供的任何帮助。
YV
PS:如果我的代码没有问题(我对此表示怀疑)并且泄漏只是一个错误或与我的代码无关的东西,那么按原样使用此代码是否安全?它会给我的应用程序带来不稳定或崩溃或类似的情况吗?
@implementation AppController
-(IBAction)openTheOpenPanel:(id)sender
{
NSOpenPanel *openThePanel = [NSOpenPanel openPanel];
[openThePanel setAllowsMultipleSelection:YES];
if([openThePanel runModal] == NSOKButton)
{
NSArray *allTheFiles = [openThePanel filenames];
int theNumberOfFiles = [allTheFiles count];
int i;
NSMutableDictionary * theDict;
theDict = [[NSMutableDictionary alloc] init];
for (i=0; i < theNumberOfFiles; i++) {
NSString *thisFile = [allTheFiles objectAtIndex:i];
NSString *theFileNum = [NSString stringWithFormat:@"%i", i];
[theDict setObject:thisFile forKey:theFileNum];
}
[theDict writeToFile:@"/tmp/test_file.txt" atomically:YES];
[theDict release];
}
}
@end