【问题标题】:managing subViews in iOS在 iOS 中管理子视图
【发布时间】:2011-11-25 06:27:06
【问题描述】:

我正在为我的应用程序创建一种自定义网格视图。我在它们上放置了许多子视图。我有必要根据用户的交互和新数据到达时使用新的视图集重新加载网格。

我为我的子视图分配内存是这样的:

while(index < count)

CustomGridTile *view = [[CustomGridTile alloc] initWithFrame:frame];

[self addSubView:view];

[view release];

}

当我想刷新我的 Grid 时,我从它们的 superViews 中删除所有子视图并创建一组新的 Grid Tiles(子视图),添加到自定义网格视图并释放它们。

我做事正确吗?这会给我带来与内存相关的问题吗?

【问题讨论】:

    标签: ios uiview


    【解决方案1】:

    只要您删除子视图,它就应该释放内存。

    解释:

    当你分配视图CustomGridTile时,它的retain count变为1。当你将它添加为子视图时,它的retain count变为2。当你释放时,retain count变为1。最后当你删除子视图时,它的retain count将变为零,应该被释放。

    【讨论】:

      【解决方案2】:

      释放视图可能会带来一些问题 - 我建议尝试自动释放它们或类似的东西

      否则我会做的是,当你从超级视图中删除它时也会释放它,但是在你将它添加为子视图后释放它过去给我带来了麻烦

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多