0

我有一个装满炸玉米饼的 UIScrollView。我通过以下方式附加了一个下拉刷新处理程序:https ://github.com/samvermette/SVPullToRefresh

它扩展了 uiscrollview,并公开了这个方法:

[scrollview addInfiniteScrollingWithActionHandler:^{
    // Get me more tacos
}];

当 InfiniteScrolling 被触发时,我会清除滚动视图的子视图和数据数组(有意地)并将其替换为新的集合。第一次效果很好。但是,当我想加载更多炸玉米饼时,它会崩溃。

我得到:

-[SVInfiniteScrollingView retain]: message sent to deallocated instance 0x1e5db5d0

毫不奇怪,如果我在 UIScrollview 中留下 1 个子视图,一切正常。

问题:我该如何解决这个问题?

我考虑过用强指针声明我的属性,例如:

@property (strong, nonatomic) IBOutlet tacoScroller *tacoScroller;

但是,我担心保留周期,它也不起作用。

任何帮助将不胜感激,也许我错过了一些基本的东西。

编辑:我正在使用 ARC

4

3 回答 3

1

使用 UITableView 来显示你的 tacos,这样你就可以重用视图并避免浪费内存。它也是显示事物列表的最简单和最方便的方式。

于 2013-06-28T07:48:48.930 回答
0

根据您的描述,一个最简单的解决方案是在滚动视图中添加一个空的隐藏子视图,我相信它不会占用太多内存。

于 2013-06-28T05:31:56.393 回答
0

我认为您正在调用错误的方法。无限滚动用于其他目的。

您可能想使用

[scrollView addPullToRefreshWithActionHandler:^{ ... }];

此外,正如其他人指出的那样,您绝对应该考虑使用 aUITableView来呈现您的数据,这似乎非常适合该任务。

于 2013-06-30T09:21:17.543 回答