【问题标题】:How to set NSArray and NSDictionary in MVC designMVC设计中如何设置NSArray和NSDictionary
【发布时间】:2012-03-03 01:52:16
【问题描述】:

这里是新开发者。

我正在制作我的第一个 iPhone 应用程序。该应用程序将在屏幕上显示一个单词,然后将一组与列表中的第一个单词相关联的单词放在一边。

这需要我将 NSStrings 存储在 NSArrays 中,并将 NSArrays 存储在 NSDictionary 中。

我知道我的模型应该设置我的集合类的内容,以便我可以告诉我的视图要通过我的控制器显示哪些单词,但我试图弄清楚在哪里/如何设置我的 NSArray 的内容和NS词典。

我认为我应该在我的头文件中为 NSArrays 和 NSDictionary 创建属性,然后在我的实现文件中将它们的内容设置在它们各自的“setter”下,但到目前为止还没有奏效。

有人指点一下吗?

谢谢!

【问题讨论】:

    标签: iphone cocoa-touch model-view-controller nsarray nsdictionary


    【解决方案1】:

    您通常会拥有模型中的所有字符串、数组和字典。该模型将公开必要的 getter,以允许外部参与者查询该数据。

    查询该数据然后将其推送到视图是控制器的工作。

    如果发生用户交互,例如按钮按下或列表滚动,视图可能会与控制器进行通信。如果是这样,那么控制器可能会想要再次查询模型。

    所以数据的实际所有者是模型。控制器和视图在它们之间来回传递临时数据,控制器有时会从模型中获取数据并将其传递给视图。

    【讨论】:

    • 谢谢。这对我来说很有意义@Tommy。我想知道我是否有这样的数组: NSArray *alphaList = [NSArray arrayWithObjects:@"x", @"y", @"z", nil];那我在哪里初始化呢?
    • 如果是表征您的“业务逻辑”的数据(即,它是事物本质的一部分),那么它将属于您的模型。如果它只是与你如何从事物的本质映射到你向用户展示的内容有关,那么控制器。
    • "arrayWithObjects:" 要求系统返回一个已经为您设置好的自动释放对象。您不必担心初始化这种对象。
    • 嗯,好的。谢谢你。那么,当我在我的模型中的 NSArray 中设置 NSStrings 列表时,我在哪里做呢?我是否在模型的标头中为数组创建一个属性,对其进行合成,然后将 NSStrings 列表放入我模型实现文件中某处的数组中?非常感谢。
    • 我想最简单的方法是从你的模型中公开为一个属性,并将自己设置在模型的- (id)init
    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多