【问题标题】:Linking a UITableView to NSMutableArray将 UITableView 链接到 NSMutableArray
【发布时间】:2011-09-18 19:26:27
【问题描述】:

这不是“请帮助我调试我的代码”消息。我实际上有它的工作,但想更深入地了解 它是如何工作的

我有一个基于视图的 xCode 应用程序。在我的主视图中,我有一个 UITableView 并且我已将委托和数据源设置为文件的所有者。

在主 ViewController 的 .h 文件中,在 @interface 部分中,我声明了一个 NSMutableArray,它将包含自定义对象的列表。

在@interface 声明中,我包含了协议 UITableViewDelegate 和 UITableViewDataSource。

稍后,在点击几个按钮后,我的代码会解析来自服务器的 XML 文件并将对象插入到 NSMutableArray 中。我在 cellForRowAtIndexPath 函数中添加了代码,该函数被调用,当我为我的 UITableView 调用 reloadData 方法时,表格中填充了从我的 XML 解析的结果!

很酷,但我想了解这是如何发生的;更好的理解对我将来会有用。

我从来没有明确地将我的 NSMutableArray 绑定到那个 UITableView。为什么将对象添加到数组时会调用 cellForRowAtIndexPath?它是如何连接的?是因为 NSMutableArray 是在具有我上面提到的协议的 @interface 块中声明的吗?如果我的 .XIB 上有两个 UITableView,代码如何知道哪个 NSMutableArray 应该映射到哪个 UITableView? (或者这是我应该努力避免的事情?)即使我只有 XIB 上的 UITableView,如果我有两个 NSMutableArrays,我是否必须担心它们以某种方式纠缠我的 UITableView?

谢谢!

【问题讨论】:

    标签: xcode uitableview nsmutablearray datasource


    【解决方案1】:

    NSMutableArray ---在您的情况下,它是要在表格视图中显示的数据。当必须显示时 表格视图使用数据源请求数据。

    它们是如何连接的 -- 数据源要求数据没有其他显式连接。

    如何处理 2 个表视图 -- 理想的方法是每个表视图有不同的数据源对象,每个对象都有自己的 NSMutableArray 数据。

    1 个表格视图和 2 个 NSMutableArray -- 留给数据源实现,根据您的需要,您可以显示任何 NSMutableArray 对象的数据。

    为什么当一个对象被添加到数组中时 cellForRowAtIndexPath 会被调用? -- 你可能在调用 view reloadData

    【讨论】:

      【解决方案2】:

      每当你调用 [tableView reloadData];您的 cellForRowAtIndexPath 方法和 numberOfRowsInSection 被调用。

      这是因为 UITableViewDataSource 协议。 NSMutableArray 和 UITableView 之间没有联系。

      当一个新的对象被添加到数组中时,[tableView reloadData];将被调用。因此,现在将为计数增加 1 的数组调用 cellForRowAtIndexPath 方法。

      希望这个 wud 有所帮助。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 2014-07-15
        • 1970-01-01
        相关资源
        最近更新 更多