我几乎完成了我的第一个应用程序(漫长但有趣的时光)
我正在尝试一周来减少应用程序的内存使用量,但如果这不起作用,我想确保它在使用后释放视图,但我发现这不会发生......
我对 searchviewController 没有内存问题,它更多的是使用 100 mb ram 的 DetailsViewController。
我将尝试在摘要中展示我的应用程序是如何构建的:
Searchview controller
The main screen --> UIViewController with tableview
in the didSelectRowAtIndex i have:
DetailsViewController *controller = [[DetailViewsController alloc]initWithNibName:@"DetailsViewController" bundle:nil];
SearchResult *searchResult = [searchResults objectAtIndex:indexPath.row];
controller.searchResult = searchResult;
DetailsViewController
详细屏幕是在选择一行时调用的,它的Uiview具有一个子视图(自定义scrollView),自定义scrollview具有icarousel(custom uiview)
.h
@property (nonatomic,weak) SearchResult *searchResult;
.m
@property (nonatomic, retain) iCarousel *carousel;
@property (nonatomic, retain) UINavigationItem *navItem;
执行:
MGBox *tablesGrid, *table1;
ViewDidLoad:
//Add barButton
UIBarButtonItem *reactButton = [[UIBarButtonItem alloc]..];
carousel = [[iCarousel alloc] init..];
//Add Tablesgrid
tablesGrid = [MGBox boxWithSize:tablesGridSize];
tablesGrid.contentLayoutMode = MGLayoutGridStyle;
[self.scrollview.boxes addObject:tablesGrid];
//Add Table
table1 = MGBox.box;
[tablesGrid.boxes addObject:table1];
在此之后,我具有将 searchResult 添加到标签并填充 icarousel(最多 6 个项目)的功能,icarousel 是一个 uiview,我将其作为子视图添加到 scrollview 等。
当我推回导航栏并返回主视图控制器时,它不会释放视图,为什么?(nslogged dealloc 但从未被调用)。内存警告后,它调用 ViewDidUnload 并释放一些内存,但仍然没有释放 ....
我没有参考其他对象,对吗?除了 searchResult 但我将它设置为弱所以它不应该是参考权?
一些信息:
在主视图上搜索后,我有:
实时字节:5,75 mb 实时:27.342 瞬态:68.200 总字节:25.30 mb
选择一行并进入 detailsViewController 后,我有:
实时字节:5.4 mb 实时:32.498 瞬态:76.488 总字节:29.55 MB
拖动icarousel的子视图行后(看图):
实时字节:5.5 mb 实时:32.798 瞬态:122.850 总字节:36.41 MB
在自定义表格视图中选择一些表格后
实时字节:5.7 mb 实时:33.508 瞬态:161.80 总字节:40.12 MB
在应用程序中打开链接并返回后(在模式视图中打开并再次关闭它)
实时字节:6.7 mb 实时:43.821 瞬态:371.761 总字节:144.95 MB
单击图片并全屏显示照片并再次返回 detailscreenview 后(打开模式并关闭)
实时字节:6.76 mb 实时:43.798 瞬态:400.850 总字节:155.69 MB
如果我回到另一排,它永远不会减少它只会增加
不要对我太苛刻或无缘无故地关闭话题..
给我一些提示或建议,或者如果您不知道“问题”是什么,请向我解释这些是什么:实时字节 - #living - #Transitory - 总体字节 - # 总体
我要感谢这个网站提供的所有信息,因为没有它我永远不会走到现在