在 MVC 中,您在哪里放置对模型类的引用?

2024-02-24

在询问了不同的人并且没有人提供我所说的“至少有点具体的答案”之后,我一直想知道:

问题:

在 iPhone 应用程序中,应用程序应该保留对其模型类的引用(使用MVC http://developer.apple.com/iphone/library/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html方法) ?

在 iPhone(和 Cocoa)应用程序中,我们有所谓的“App Delegate”,它基本上启动我们的应用程序并初始化我们的控制器,还处理 UITouch 事件。

那么 App Delegate 是一个控制器吗?模型类?两者都没有?我认为不知道这一点也会让人困惑于将模型参考放在哪里。

Example:

您有应用程序委托,该委托包含对应用程序视图控制器的引用。如果我的应用程序使用模型类 A(这是一个网络服务器守护程序类),以及存储该网络服务器查询的数据的类 B。

你们会将 A 和 B 的引用存储在哪里? (应用程序委托?视图控制器?两者?)

这里有很多选项,但作为一个例子,我真的很想知道你们如何使用 mvc 来组合这个仅使用一个视图的应用程序。


将所有内容都放入 AppDelegate 中很诱人,但如果您开始这样做,那么您的 AppDelegate 将充满参考黑客。如果你正在做严格的 MVC,那么你应该做三件事:

  • A Model
  • 视图控制器(仅用于视图逻辑)
  • 控制器(用于协调视图和模型)

例如,我有一个 Foo 模型和一个 Foo 控制器。我会:

  • Foo.m(模型)
  • FooViewController.m(显示 Foo)
  • FooController.m(控制逻辑)

最后,为了回答你的问题,我将对 Foo 的引用存储在 foo 控制器中。我喜欢为我的控制器使用单例,但那只是我。如果你确实使用单例,你可以这样做:[[FooController sharedInstance] listOfFoos]得到你的 Foo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MVC 中,您在哪里放置对模型类的引用? 的相关文章

  • 使用 PhoneGap + iPhone 上传文件

    据我所知 PhoneGap 应用程序大部分 如果不是全部 都是 HTML5 CSS JavaScript iPhone 本身不提供上传文件的控件 PhoneGap是否提供任何允许用户上传文件的机制 图片 视频 以 iPhone 为例 我知道
  • UITableViewCell 的 viewDidAppear

    我通常使用viewDidAppear方法在视图完成出现后在视图上执行一些 UI 操作 我在各种情况下使用了此方法 它非常有用 但是 我需要在视图上进行一些 UI 更改UITableViewCell当它完成出现后 SDK中是否有任何可用的方法
  • 在iPhone上将CSV文件读入sqlite3

    有没有办法在iPhone上将CSV文件读入sqlite3 sqlite3 是否有类似于 SQL 命令的功能 LOAD DATA LOCAL INFILE file csv INTO TABLE TABLENAME FIELDS TERMIN
  • 如何在我的应用程序中添加应用内购买

    我想在我的应用程序中使用应用程序购买应用程序 但我不知道如何执行此操作 任何人都可以帮助我如何做以及源代码在哪里 给我链接或代码 这里有一堆链接 应用内购买编程指南 http developer apple com iphone libra
  • 如何以方向友好的方式在选项卡栏上显示 UIDatePicker?

    我想滑入UIDatePicker当我的用户点击我的表格视图日期字段时 就像在标准联系人应用程序中一样 当用户点击生日字段时 还有一个额外的致命细节 它位于标签栏应用程序中 我想要UIDatePicker滑过标签栏 当用户将手机横向放置时仍然
  • rightBarButtonItem 信息按钮,右侧没有空格

    我有一个UIViewController设置为在其右侧显示一个信息按钮UINavigationItem像这样 UIButton infoButton UIButton buttonWithType UIButtonTypeInfoLight
  • iPhone - 创建自定义 UITableViewCell 顶部和底部边框

    我一直在到处寻找 但还没有找到我的答案 我使用 JSON 中的动态单元格填充 UITableView 并尝试隐藏任何额外的单元格 我关闭了IB中的分隔符 当然所有的单元格分隔符都消失了 如何在每个 tableviewcell 的底部和顶部添
  • UILocalNotification 在后台 10 分钟后不提示

    In didFinishLaunchingWithOptions调用函数的定时器循环httpRequest每 1 分钟间隔一次 BOOL application UIApplication application didFinishLaun
  • 如何检测 UISwipeGestureRecognizer 的结束?

    来自苹果文档 滑动是一种离散手势 因此每个手势仅发送一次关联的操作消息 void touchesEnded NSSet touches withEvent UIEvent event 当我使用 UISwipeGestureRecognize
  • 如何在iOS中处理1到3个手指的滑动手势

    我使用以下代码来处理代码中的 1 根手指滑动 UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget self action selector
  • 核心数据:尝试查找实体中属性的最小日期

    我正在尝试查找核心数据中特定属性中最旧的日期 我发现了核心数据编程指南中的示例 http developer apple com mac library documentation cocoa conceptual CoreData Art
  • iPhone 上的双精度与浮动

    我刚刚听说 iPhone 本身无法进行双倍操作 从而使它们比常规浮动慢得多 这是真的 证据 我对这个问题很感兴趣 因为我的程序需要高精度计算 而且我将不得不在速度上妥协 iPhone 可以在硬件中执行单精度和双精度算术 在 1176 原始
  • jquery datatable ajax 无数据可用 mvc

    我有一张桌子是在 document ready功能 我还使用 jQuery DataTables 插件 由于某种原因 当页面加载时 ajax 调用控制器并返回数据并将其设置为我的网格所有获取的数据 但是尽管所有数据都加载到数据表中 但仍获取
  • UIView animateWithDuration:delay: 工作很奇怪

    我在使用 iPhone 动画块时遇到了一个奇怪的问题 这段代码 UIView animateWithDuration 2 delay 0 options 0 animations void controller setBackgroundC
  • Demandware MVC 概念

    我是 Demandware 的新手 我正在从 Magento 切换到 Demandware Demandware 不是开源的 我没有得到适当的教程 无法理解它的概念 我来自 Magento 所以我知道 Magento MVC 结构 但在 D
  • UITableViewCell显示多种字体

    我想在 uitableviewcell 中以类似于 iPhone 地址簿的不同字体显示两个单词 例如 约翰Buchanan 您应该使用两个 UILable 或者您可以使用OH属性标签 https github com AliSoftware
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图
  • 如果我使用自定义 UITableViewCell,是否需要设置 heightForRowAtIndexPath?

    如果我使用自定义 UITableViewCell 是否需要设置 heightForRowAtIndexPath 在我的 NIB 中 我已经设置了单元高度 当我覆盖 heightForRowAtIndexPath 时 单元格的内容不会出现 即
  • 从应用程序启动 iPhone 设置屏幕?

    我正在开发一个应用程序 我希望按下按钮时 iPhone 设置屏幕应该打开 苹果有访问限制吗 到底能不能 如果能的话怎么办 不 你不能那样做 但是 作为替代方案 您可以使用这个框架 http www inappsettingskit com
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • Java 中 DirectX 程序的全屏捕获(Javacv?)

    对于Windows 我知道可以捕获在 C 语言下运行的 DirectX 程序的屏幕 但是您知道 Java 的一些示例代码吗 我实际上面临着同样的问题使用java在全屏应用程序中截取屏幕截图 https stackoverflow com q
  • 突出显示工作表中的第二个实例重复项

    尝试在谷歌表格上标记重复项 但我看到当我使用时 第一个实例被突出显示 COUNTIF A1 A100 A1 gt 1 我尝试同时使用 IF 和 COUNTIF 以便突出显示第二个实例 IF COUNTIF A1 A97 A1 gt 1 Du
  • nginx keepalive 和 dns 解析器

    我在 AWS 中有一个 nginx 实例 它具有上游应用程序层 对nginx有两个要求 活着 使用解析器动态解析上游 我能够使它们中的任何一个工作 这是使 keepalive 工作的配置 upstream backend server ap
  • localStorage 无法在 google chrome 上运行

    我正在使用浏览器localStorage存储一个值 但是在使用谷歌浏览器时 当我们使用以下命令刷新页面时window location reload localStorage value被冲了 例如 localStorage value1
  • MongoDB 副本集成员状态为“OTHER”

    三个成员 主要和次要 第三个成员是 其他 我找不到有关该状态的任何信息 不知道该怎么做 我已经重新启动了实例 但它总是出现相同的情况 找不到有关该状态的文档 我是复制集的新手 任何帮助将不胜感激 配置设置不正确 您可以使用以下命令来初始化
  • 在 Python 中压缩并使用解压缩 C# 解压缩的最简单方法(反之亦然)

    我有一个带有基于 Mono 的 C 客户端和 Python 服务器的程序 它们通过 TCP IP 套接字进行通信 这些消息主要使用二进制格式 但每条消息的最大部分通常是嵌入的 UTF 8 字符串 英文 每条消息通常都很短 小于 100 字节
  • 将数据框(或其他 R 对象)连接到只读 Postgresql 数据库中的表?

    我对 Postgres 数据库具有只读访问权限 我无法写入数据库 问 有没有办法构建和运行 SQL 查询 将数据框 或其他 R 对象 连接到只读 Postgres 数据库中的表 这是为了从 WRDS 访问数据 https wrds www
  • UIGestureRecognizer oneFingerForcePress:在 iOS 11 上崩溃

    我们刚刚收到有关 iPhone 设备 iOS 11 的一些奇怪的崩溃反馈 这里有一个信息 UIKit UIKeyBoardBasedNonEditableTextSelectionGestureCluster oneFingerForceP
  • 在Angular2中动态加载HTML模板

    我使用创建了一个项目angular cli其中包含应用组件如下 import Component from angular core Component selector app root templateUrl app component
  • MSVC10 Visual Studio 2010 是否支持基于 C++ 范围的循环

    MSVC10 是否支持 C 0x 草案标准的基于范围的循环 http en wikipedia org wiki C 2B 2B0x Range based for loop http en wikipedia org wiki C 2B
  • Jenkins Email-ext 预发送脚本

    我想在 Email ext Jenkins 插件的预发送脚本中编辑电子邮件正文 我应该使用什么语言来编写代码 Bash 脚本还是其他 您可以添加一些代码吗 谢谢 您必须使用的语言是 Groovy 您可以在 Jenkins gt 管理 gt
  • 使用 typeScript 滚动到 webView 上的 x,y 坐标

    我正在我的应用程序中制作自定义地图 这本质上是一个大地图图像 我根据 GPS 位置在大地图图像上移动一个小头像图像 我允许用户滚动地图以查看屏幕外的地方 我现在想添加一个按钮 使用户回到他们的位置中心 但它不起作用 我尝试使用 window
  • 如何获取带有分隔符的字符串的前五个字符

    由此形成一整串 1 2 3 4 5 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 我怎样才能实现像这样放入数组 我想将它们按行放入数组中 正如您所提到的 您可以将结果作为字符串 并具有预期结果row str
  • 无法在 Databricks 上运行 Pandas 分析

    我正在尝试在 Databricks 环境中的示例数据帧上运行 Pandas 分析 收到与 marplotlib 相关的错误 不确定此问题是否与 Matplotlib 或 pandas profiling 相关 任何帮助将不胜感激 Datab
  • 初始化 MIDIMetaEvent 结构

    我正在努力使用 swift 初始化 MusicPlayer h 中找到的 MIDIMetaEvent 结构 头文件定义结构如下 struct MIDIMetaEvent var metaEventType UInt8 var unused1
  • 将 Gollum wiki 部署到 Heroku

    Gollum 是 一个简单的 由 Git 驱动的 wiki 具有出色的 API 和本地前端 它托管在 GitHub 上 http github com github gollum http github com github gollum
  • 移动浏览器中 Div 绝对定位的问题

    我在以下网站上绝对定位名为 id verticalGenesis 的 div 时遇到很多问题 http genesispetaluma com index html http genesispetaluma com index html在移
  • 清理项目、重建项目、在 Android Studio 中运行项目

    有谁知道或知道 android studio 中这三个功能如何工作的详细答案 我认为 Eclipse 可能还有 IntelliJ 也具有相同或相似的功能 我已经看到并被告知答案 这些答案给出了它们如何工作的简要概述 据我了解 重建还将清理项
  • Printf 函数格式化程序

    有以下简单的C 代码 include
  • 在 MVC 中,您在哪里放置对模型类的引用?

    在询问了不同的人并且没有人提供我所说的 至少有点具体的答案 之后 我一直想知道 问题 在 iPhone 应用程序中 应用程序应该保留对其模型类的引用 使用MVC http developer apple com iphone library