0

新开发人员在这里。如何在MVC设计中设置NSArray和NSDictionary

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

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

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

我认为我应该在我的头文件中为NSArrays和NSDictionary制作属性,然后将它们的内容设置在我的实现文件中各自的“setter”下,但它迄今还没有工作。

有没有人有任何指针?

谢谢!

回答

1

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

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

如果发生用户交互(例如按下按钮或列表滚动),视图可能会传回控制器。如果是这样,那么控制器可能会希望再次查询模型。

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

+0

谢谢。这对我来说很有意义@Tommy。我想知道的是,如果我有这样的数组:NSArray * alphaList = [NSArray arrayWithObjects:@“x”,@“y”,@“z”,nil];那么我在哪里初始化它? – 2012-03-03 02:39:46

+0

如果是表征“业务逻辑”的数据(即它是事物本质的一部分),那么它就属于你的模型。如果这只是关于如何从事物的本质映射到向用户和控制器展示的内容。 – Tommy 2012-03-03 02:50:13

+0

“arrayWithObjects:”要求系统将已经为您设置的自动释放对象返回给您。你不必担心初始化这种对象。 – Jamie 2012-03-03 02:50:31