iOS 6 UIScrollview:帮助我的Taco App不断崩溃

时间:2013-06-28 04:45:15

标签: ios memory-management uiscrollview automatic-ref-counting

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

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

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

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

我明白了:

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

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

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

我想过用强指针声明我的属性,比如:

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

,我担心保留周期&它也行不通。

任何帮助都会受到赞赏,也许我会遗漏一些基本的东西。

编辑: 我正在使用ARC

3 个答案:

答案 0 :(得分:1)

使用UITableView显示您的玉米饼,这样您将重用视图并避免浪费内存。此外,它是显示事物列表的最简单,最方便的方式。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

您可能想要使用

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

另外,正如其他人所指出的,你绝对应该考虑使用UITableView来展示你的数据,这似乎非常适合这项任务。