3

我有一个使用 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 开发的新手。

谢谢乔纳森

4

1 回答 1

1

您应该使按钮弱引用

@property (weak, nonatomic) IBOutlet UILabel *lblStockCode;

也许看看这个:ARC Transition

于 2012-04-15T21:45:50.933 回答