ios - 推送 View Controller 中的内存泄漏

标签 ios memory-management memory-leaks navigationcontroller

在 Instrument-Leaks 中,当我推送 PhotosObj 时,以下代码总是增加分配内存。释放 PhotosObj 不起作用。

if (PhotosObj) {
    [PhotosObj release];
    PhotosObj=nil;
    PhotosObj=[[Photos alloc]initWithNibName:@"Photos" bundle:nil]; 
}
else {
    PhotosObj=[[Photos alloc]initWithNibName:@"Photos" bundle:nil];
}
[self.navigationController pushViewController:PhotosObj animated:YES]; 

请澄清一下。

提前致谢

最佳答案

PhotosObj 是个什么样的变量?本地、全局或实例变量? 我建议将其设为局部变量(变量名应以小写字母开头),如下所示:

Photos *photosObj = [[Photos alloc] initWithNibName:@"Photos" bundle:nil];
[self.navigationController pushViewController:photosObj animated:YES];
[photosObj release];

关于ios - 推送 View Controller 中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427684/

相关文章:

iphone - 在格式化价格时获取 NSNumberFormatter 以拼出货币

c++ - 个别动态分配的极端内存使用

delphi - 线程关闭期间 Win64 Delphi RTL 中的内存泄漏?

c# - 将字符串 (const char*) 从 C++ 传递到 C# 时,SWIG_csharp_string_callback 会导致内存泄漏

ios - 知道 iOS 通知是否被关闭

ios - objective-c : Replace double backslash with a single backslash

ios - 从 Apple 服务器获取空白响应订阅状态 URL IAP,状态更新通知,statusUpdateNotification

c++ - 线程函数无法从堆上分配的缓冲区中读取字符

c++ - 如何将使用 malloc() 的 C 语句转换为 C++?

java - 什么是好的 java 调试器?