1

(最初我发布了这个,Apple Developer Network四天后没有任何回应,所以我在这里复制/粘贴)

ARC 已启用。

在我的课堂上,我有一个UITableViewController财产,

@property (nonatomic, strong) UITableViewController* tableViewControllerSectionMenu;

用于保存表格视图UIPopoverController

此代码UITableViewControllerviewDidLoad:

self.tableViewControllerSectionMenu = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
self.tableViewControllerSectionMenu.tableView.dataSource = self.dataSource;
self.tableViewControllerSectionMenu.tableView.delegate = self;

这工作正常,直到发生内存警告。

之后,表格是空白的。

我尝试reloadData在调用 popover 的地方放置,但这并没有改变。

有人知道为什么会发生这种情况以及如何解决这个问题吗?

通过谷歌搜索,我找到了几种解决方案,但在我的情况下都没有。

4

2 回答 2

1

我认为收到内存警告时您的数据已被清除。你有没有实施didReceiveMemoryWarningviewDidUnload任何机会?

于 2012-12-20T08:55:56.423 回答
0

当收到内存警告消息时,屏幕上当前不可见的所有视图都将被清除。它们应该在以后需要时重新创建。

重新创建它们也意味着再次附加委托和数据源。由于在 ViewController X 中收到内存警告,并且它的视图在屏幕上,因此我的表格视图被清除了。

但由于我没有从 X 移动,委托和数据源没有再次附加,就像在viewDidLoad.

为了避免从 X 退一步,我为我的表格视图创建了一个新类,在其中viewDidLoad我附加了委托和数据源。

于 2013-01-16T11:25:58.180 回答