我有一个使用 Xcode 4.3.2 针对 iOS 5.1 的简单项目,使用情节提要和 NavigationController。我刚刚将项目迁移到使用 ARC,现在我注意到当我的 UITableViewController 场景被弹出(按下后退按钮)时内存没有被回收。当我自己管理内存时,我确信这一切正常。我正在使用 Instruments 工具的“分配”功能,我可以看到每次推送场景然后弹出时,“实时字节”都会继续增加。UITableViewController 的接口是:
#import <UIKit/UIKit.h>
#import "ASIHTTPRequest.h"
@interface StockListView : UITableViewController <UISearchBarDelegate>
{
NSMutableArray *tableListArray;
IBOutlet UISearchBar *searchBarControl;
}
@property (nonatomic) ASIHTTPRequest *httpDSRequest;
@end
UITableView 使用定义如下的自定义 UITableViewCell 类:
#import <UIKit/UIKit.h>
@interface StockListCell : UITableViewCell
@property (nonatomic) IBOutlet UILabel *lblStockCode;
@property (nonatomic) IBOutlet UILabel *lblDescription;
@property (nonatomic) IBOutlet UILabel *lblQtyInStock;
@property (nonatomic) IBOutlet UILabel *lblQtyFree;
@end
我正在使用的属性中是否有一些东西将视图控制器保留在内存中?既然我正在使用 ARC,我是否需要添加一些代码以允许视图控制器完全解除分配?
我还使用了 Instruments 的“泄漏”功能,但这并没有显示出任何泄漏。
任何帮助表示赞赏,很抱歉我还是 iOS 开发的新手。
谢谢乔纳森