【问题标题】:Where do I fill and Store an array我在哪里填充和存储数组
【发布时间】:2023-04-03 00:31:01
【问题描述】:

我的问题很简单:使用 MVC 模式我应该在哪里保存一些数组

  • 用户 --> 我的NSObject 类(模型)
  • Contact --> My Contact TableViewController 类,带有 User 数组(控制器)
  • 查看 --> 我的Storyboard(查看)

嗯,我有一个有很多按钮的主屏幕:

  • 1 --> 其中之一是“联系人”。
  • 2 --> 当我点击它时,mainView 切换到ContactViewController(带有故事板推送)。
  • 3 --> 这个ContactView 应该显示我的用户数组。

考虑到我使用 MVC,我应该在哪里保存/初始化我的数组?

  • 在名为“UserList”之类的新类(模型)中、ContactViewController 中或其他地方?

即使我为此创建了一个新模型“UserList”,我应该在哪里调用它,以便它可以在我的视图加载时加载数据?

【问题讨论】:

    标签: ios arrays model-view-controller uiviewcontroller storyboard


    【解决方案1】:

    在您的模型中。将模型视为存储为 plist、sql db 等的数据的接口。当然,如果您的数据不可更改,那么模型实际上可能包含/创建数据本身。因此,通常模型会创建一个数组(或数组数组),该数组由数据库或 plist 中的数据填充。然后,ViewController 会从模型中请求一个或多个数组条目。

    “联系人”按钮是主视图的一部分。它的显示由 mainViewController 控制,它将新的 ContactViewController 控制器推送到堆栈上。 ContactViewController 应该在模型中创建或检索它的数据,这些数据将用于显示它的视图元素。

    【讨论】:

    • 好的,感谢您的回答。所以我的问题是“在哪里”(在什么函数中)我应该用数据调用我的模型。因为如果我在“ViewDidLoad”中执行它为时已晚,视图已经加载。我不能在“初始化”函数中这样做,因为它没有被调用。那么,我应该在 ContactViewController 内部的哪个函数中执行此操作? (启动我的标签)。
    • 如果是我,我会为 viewController 编写一个自定义初始化方法:-(id) initWithContactID:(NSString *)theContactID;在该方法中,我将创建指向共享/单例模型类的指针,然后在 viewController 中的该方法中从模型中检索数据。您从模型中检索的数据可以是该联系人的所有数据的数组(然后根据需要分配),或者您可以单独获取数据片段(我通常的偏好)。
    • 实际上你可以在 viewDidLoad 中做到这一点,因为此时屏幕上没有显示任何内容。 viewDidLoad 在 vi​​ewWillAppear 之前被调用,更不用说 viewDidAppear。如果你调用它,你可以在 init 中执行它:[ContactViewController init];
    • 顺便说一句,当您使用故事板时,您可以使用 prepareForSegue:sender: 告诉视图控制器要加载哪个联系人。
    • 我的应用程序需要像网站一样做:显示个人资料、私人消息、事件……所以我创建了一些类,例如:个人资料、事件、消息……所以当有人登录时应用程序,我检索一些数据(他的个人资料,一些事件,一些个人资料,一些消息,......)。是“最好”/“美丽”的方式来创建一些新类,如:profileS、eventS、messageS。哪些只是配置文件、事件、消息的数组?
    【解决方案2】:

    您应该在“用户”类(用户 --> 我的 NSObject 类(模型))中为该数组创建一个新字段。如果初始化需要很多时间,那么你应该在你的 ContactViewController 的 ViewDidLoad 中初始化它。

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 2014-01-17
      • 2011-09-20
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多