【发布时间】:2023-03-21 12:14:01
【问题描述】:
我正在尝试返回一个已从 plist 初始化的 NSString。
如果我注释掉我的发布行,则此代码有效。然而,我想从内存中释放这些对象,因为我不再需要它们。
我认为“initWithString”会将目标字符串的内容复制到我的新字符串中,这意味着我可以安全地释放 NSMutableArray。但事实并非如此。为什么不呢?
+ (NSString*) genImage {
NSString *path = [[NSBundle mainBundle] pathForResource:
@"Images" ofType:@"plist"];
NSMutableArray *arrayOfImages = [[NSMutableArray alloc] initWithContentsOfFile:path];
NSLog(@"%d", [arrayOfImages count]);
int indexToLoad = 0;
NSString *res = [[NSString alloc] initWithString:[arrayOfImages objectAtIndex:indexToLoad] ];
[arrayOfImages release];
[path release];
return res;
}
【问题讨论】:
标签: objective-c