我有一个装满炸玉米饼的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
答案 0 :(得分:1)
使用UITableView显示您的玉米饼,这样您将重用视图并避免浪费内存。此外,它是显示事物列表的最简单,最方便的方式。
答案 1 :(得分:0)
根据您的描述,一个最简单的解决方案是添加一个空的&滚动视图中的隐藏子视图,我相信它不会占用大量内存。
答案 2 :(得分:0)
我认为你正在调用错误的方法。无限滚动用于其他目的。
您可能想要使用
[scrollView addPullToRefreshWithActionHandler:^{ ... }];
另外,正如其他人所指出的,你绝对应该考虑使用UITableView
来展示你的数据,这似乎非常适合这项任务。