我用一个uiviewcontroller管理多个视图。切换视图后,把不显示的视图释放掉。
uiview1 *view1 = [[uiview1 alloc] init...];
self.view = view1;
[view1 release];
虽然我在视图上添加了很多subview但是能保证都释放掉了。可是内存就是回不到原来的水平了。
视图1:7M
视图2:13M
视图1:8M
视图2:13M
视图1:8M
视图2:13M
视图1:8M
......
最后虽然稳定在8M,但是我的程序中有很多页面。如此增长肯定吃不消的。
uiview1 *view1 = [[uiview1 alloc] init...];
self.view = view1;
[view1 release];
虽然我在视图上添加了很多subview但是能保证都释放掉了。可是内存就是回不到原来的水平了。
视图1:7M
视图2:13M
视图1:8M
视图2:13M
视图1:8M
视图2:13M
视图1:8M
......
最后虽然稳定在8M,但是我的程序中有很多页面。如此增长肯定吃不消的。
>>self.view = view1;
>>[view1 release];
你的view1还没有被释放。Objective-C采用计数方式管理内存,只有当实例的引用数retain count为0时,调用Release才会被真正释放,否则只是将retain count减少1而已。这里有一些关于iPhone程序开发不错的文章,推荐给LZ http://mobfan.cn
点操作符会把旧的release,把新的retain。
self.view = view1;
[view1 release]; 只有[view release]的时候才真正释放了。
加入想做成幻灯片的功能,那么最好有两个view同时存在,而后之间切换赋值。
加入有需要我这里有实例代码。
另外推荐一下苹果开发中文网 www.CocoaDev.cn