【问题标题】:iOS 6 UIScrollview: Help My Taco App Keeps CrashingiOS 6 UIScrollview:帮助我的 Taco 应用不断崩溃
【发布时间】:2013-06-28 04:45:15
【问题描述】:

我有一个装满炸玉米饼的 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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 而且您使用的是 iOS6,因此您可以使用内置的下拉刷新功能,而无需使用第三方代码。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我认为您调用了错误的方法。无限滚动是为了其他目的。

      你可能想要使用

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

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

      【讨论】:

        猜你喜欢
        • 2014-03-31
        • 2016-07-31
        • 1970-01-01
        • 2016-08-06
        • 2018-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多