CS193P 作业 3,提示#5 - 型号是啥?

     2023-02-24     236

关键词:

【中文标题】CS193P 作业 3,提示#5 - 型号是啥?【英文标题】:CS193P Assignment 3, Hint#5 - What is the model?CS193P 作业 3,提示#5 - 型号是什么? 【发布时间】:2012-05-03 07:19:21 【问题描述】:

我正在学习斯坦福 2011 年秋季 iOS 课程: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/

我正在执行任务#3: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/system/files/assignments/Assignment%203_2.pdf

总而言之,之前的作业要求构建一个常规计算器,现在这个作业要求我们将此计算器推送到导航控制器,并创建从 CalculatorViewController 到 GraphViewController 的 segue,它将绘制存储在“计算器大脑”。这个 CalculatorBrain 是原始 CalculatorViewController 的模型。

提示#5 一直在谈论这样一个事实,即现在 GraphViewController 的模型与 CalculatorViewController 的模型不同,我不明白他的意思。

我能够构建新 MVC 的唯一方法是在 GraphViewController 的 GraphView(视图)中创建一个协议,其中包含一个名为“dataSource”的类型 ID 的对象。然后在 GraphViewController 中:采用该协议,实例化 GraphView 并将其自身设置为数据源:

-(void) setGraphView:(GraphView *)graphView
  
  _graphView=graphView;   
  self.graphView.dataSource=self;
  

然后在原来的CalculatoViewController中,使用prepareForSegue将程序传递给GraphViewController:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

  if([segue.identifier isEqualToString:@"Graph"])
  
    GraphViewController *myGraphViewController = segue.destinationViewController;
    myGraphViewController.myCalculator=self.myCalcBrain;
  

所以这似乎工作正常。所以如果这样的话,那就意味着 GraphViewController 的模型真的是他明确说不是的原始计算器大脑!

我的意思是,在 segue 期间,我将来自原始 CalculatorViewController 的计算器模型实例分配给 Graphviewcontroller 计算器属性,然后使用协议将 Y 值从 GraphViewController 返回到 GraphView,这并不是事实意味着GraphViewController 的模型实际上只是原始的 CalculatorBrain 模型。

【问题讨论】:

不是“这个新视图控制器的模型是什么?”究竟是什么要求你弄清楚? 认为应该是什么?图形视图控制器对哪些数据进行操作? @Caleb 谢谢。真正令人困惑的是,我在 GraphView 类中定义了一个协议(带有一个方法和一个属性),然后让 GraphViewController 实现该协议(和该方法),以使该方法响应所传递的 x 的 Y 值。这让我很困扰,因为在我看来,这告诉我 GraphVC 的模型值(Y)仍然来自主“CalculatorBrain”类,他说它不是。也许这只是语义......我是不是想多了? 【参考方案1】:

我确实相信模型是“程序”,一个 NSArray 对象。它不能是程序的描述,因为没有简单的方法来计算给定 NSString 的“y”值。您必须将 NSString 重新解析为堆栈(NSArray)。这样一来,将模型作为 NSArray/program 不是更直接吗?

【讨论】:

【参考方案2】:

我不想为你回答这个问题,因为这是你应该做的,但我相信你想多了,所以这就是他想让你意识到/做的事情:

您的模型将是一个继承自原始计算器模型的新类。这就是为什么他说你只需要从头开始创建视图和控制器。您还必须创建一个模型类,但许多必要的代码已经存在于旧的 calc 模型中,因此您只需继承它并添加必要的附加功能。

希望对您有所帮助,并且很高兴看到您正在使用这些课程。它们是一个很棒的免费工具!

【讨论】:

您将向继承模型添加什么样的附加功能。真的没有什么可补充的。 GraphView 正在遍历 x 并从 ... 询问并取回 Y 值。由于视图和模型无法相互通信,这告诉我您建议设置 GraphVC 以实例化 Calc Brain(从继承的模型),但仍然通过顶层 MVC 传递原始 Calc 对象。与模型只是@Matt 一样的公式相比,它似乎过于复杂。我希望我们能在这里得到更多的反馈。谢谢【参考方案3】:

当我做那个任务时,我也为这个问题有点挣扎。我得出的结论(无论对错)模型只是一个公式——这看起来就像你得出的结论,虽然不是计算器大脑类,但与它密切相关!

编辑:

我刚刚回去查看了我的计算器程序(我目前正在做 flickr 作业,所以有一段时间没看)

看看基本的计算器,模型是一个“calculatorbrain”对象

在作业的提示中它说

不要将此 Controller 的 Model 与 CalculatorViewController 的 Model 混淆。它们不一样。不要过度思考这一点。您的新控制器模型就在眼前!

我拥有的graphview 控制器模型是一个程序。正如在calculatorbrain 中定义的程序一样——只是一个操作堆栈(NSArray)而不是calculatorbrain。我只是通过 segue 将当前程序传递到 graphview 控制器。

对我来说,它似乎符合提示的细节 - 当您继续查看图表时,程序就在手边,但它与计算器的模型不同相同

提示并没有说它与模型无关。

但我也有点 iOS n00b,所以这只是我的看法!

【讨论】:

【参考方案4】:

模型应该只是一个描述您要绘制的“程序”的 NSString。就像在计算器大脑返回给您的程序中一样!

id program = [self.dataSource.brain program];

【讨论】:

这可能过于复杂了。然后,您必须将 NSString 更改回一个数组才能绘制它...【参考方案5】:

我的模型也是“程序”!

【讨论】:

【参考方案6】:

@Lee Cjin Pheow,你是对的。随着我在这门课程中的进步,这一点变得更加明显。所以模型只是一个保存程序的 NSArray。我认为我的困惑是因为我做了一个 n00b 假设,即 MVC 中的模型必须是它自己的类/文件,因此我搜索了一个模型类/文件。随着我的进步,我看到教授有一个 MVC,其中模型实际上只是一个属性,例如,它位于控制器中。我只需要在我简单的头脑中保持黄色不越线。

【讨论】:

iOS (cs193p):为啥我的 UISplitViewControllerDelegate 委托方法没有在方向改变时被调用?

】iOS(cs193p):为啥我的UISplitViewControllerDelegate委托方法没有在方向改变时被调用?【英文标题】:iOS(cs193p):WhyaremyUISplitViewControllerDelegatedelegatemethodsnotcalledonorientationchange?iOS(cs193p):为什么我的UISplitViewControllerDelegate委托方法没有在... 查看详情

第八次团队作业:beta冲刺(3/5)

这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2018CS/?page=2这个作业要求在哪https://edu.cnblogs.com/campus/fzzcxy/2018CS/homework/12075这个作业的目标beta冲刺作业正文如下其他参考文献无昨日进展优化工作今日安排讨论其他功能的完善... 查看详情

未调用 mkmapview 委托方法 -calloutaccessorycontroltapped

...间】:2012-07-2519:50:48【问题描述】:我正在尝试完成cs193p作业5的最后一部分(link)该应用程序从Flickr中选择热门地点,并将这些地点的照片绘制在地图上。任务5 查看详情

华为cun-al00是啥型号

型号CUN-AL00是荣耀畅玩5全网通2GB+16GB版本。手机参数如下:1、屏幕方面:荣耀畅玩5的屏幕是5.0英寸高清屏,触感舒适又美观。2、摄像头方面:后置摄像头是800万,F2.0光圈,自动对焦,前置摄像头200万,F2.2光圈,固定焦点,大... 查看详情

NSURLErrorDomain 错误代码 -1005

...的CS193p课程(我不是斯坦福学生,我​​只是想学习),作业编号5,我们必须使用对Flickrapi的调用从Flickr获取图像。我只是想下载图片列表并将它们打印到控制台,但我得到了一个代码为-1005的NSURLErrorDoma 查看详情

SwiftUI CS193P - 不能在属性初始化程序中使用实例成员“卡片”;属性初始化程序在“自我”可用之前运行

】SwiftUICS193P-不能在属性初始化程序中使用实例成员“卡片”;属性初始化程序在“自我”可用之前运行【英文标题】:SwiftUICS193P-Cannotuseinstancemember\'card\'withinpropertyinitializer;propertyinitializersrunbefore\'self\'isavailable【发布时间】:20... 查看详情

ASP .NET MVC 5 中使用的 Startup.Auth.cs 和 Startup.cs 是啥?

】ASP.NETMVC5中使用的Startup.Auth.cs和Startup.cs是啥?【英文标题】:WhatareStartup.Auth.csandStartup.csusedforinASP.NETMVC5?ASP.NETMVC5中使用的Startup.Auth.cs和Startup.cs是什么?【发布时间】:2017-02-0121:09:47【问题描述】:我在MVC5中制作了一个应用程... 查看详情

代作cs系统作业代写需求分析作业代写登陆模块

代作CS系统作业、代写需求分析作业、代写登陆模块客户端需求:1.登陆模块:每个用户能通过唯一账户密码登陆系统。2.首页:新闻展示页面,按照分栏目展示,有党建要闻,十九大专题,党风廉政建设,志愿服务栏目,用图文... 查看详情

第二次作业

这里是打开安装包后直接开始安装代码链接:https://coding.net/u/sjh9524613/p/abcd/git/blob/master/bqbq.cs用例编号用例描述输入数据预计输出数据实际输出数据通过/不通过评价1全负数4,5,8,72424通过正确2全正数-5,-2,-1,-300通过正确3有正有负1,-... 查看详情

0912作业

1.输入半径计算圆的面积2.题目六:控制台输入年龄,根据年龄输出不同的提示)?3.纸为0.08mm求折纸多少次超珠峰8848.13m 4.求5的阶乘5.计算1+1/2!+1/3!+1/4!+...1/20!=? 6.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数... 查看详情

第八次团队作业:bate冲刺(5/5)

这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2018CS这个作业要求在哪里https://edu.cnblogs.com/campus/fzzcxy/2018CS/homework/12075这个作业的目标Beta冲刺一、今日进展今天是Bate冲刺的最后一天了,预期功能已基本实现,对小程序的界面... 查看详情

『cs231n』作业3问题4选讲_图像梯度应用强化

【注】,本节(上节也是)的model是一个已经训练完成的CNN分类网络。随机数图片向前传播后对目标类优化,反向优化图片本体defcreate_class_visualization(target_y,model,**kwargs):"""Performoptimizationovertheimagetogenerateclassvisualizations.Inputs:-target... 查看详情

第三天作业

1、开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语2、使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符Ctrl+ALT+F2,3、使用命令退出虚拟终端2上登录的用户exit 4、使用快捷键切... 查看详情

第八次团队作业:beta冲刺(4/5)

这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2018CS/?page=2这个作业要求在哪https://edu.cnblogs.com/campus/fzzcxy/2018CS/homework/12075这个作业的目标beta冲刺作业正文如下其他参考文献无昨日进展讨论其他功能的完善。对页面进行美化... 查看详情

软工作业:用户体验分析

一.作业目标及要求http://www.cnblogs.com/juking/p/7660646.html 二、分析过程及内容(一)满意的地方1.必要的提示和帮助文档①在公共号服务未出现故障的情况下,在该公共号的对话框中键入任意非规定回复字段时,会得到提示的回... 查看详情

用户调查报告

这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2018CS这个作业要求在哪里https://edu.cnblogs.com/campus/fzzcxy/2018CS/homework/12075这个作业的目标完成用户调查报告,检验小程序的实践功能一、小程序功能1、打卡、签退2、排行榜3、打... 查看详情

徐工挖掘机270是啥发动机型号

...(mm)495最小回转半径(前端装置)(mm)3510后端回转半径(mm)2955作业范围最大挖掘半径(mm)10240最大挖掘深度(mm)6925最大挖掘高度(mm)10095最大卸载高度(mm)7170最大垂直挖掘深度(mm)5520油类容量燃油箱(L)400液压油箱(L)220发动机油更换量(L)19.5液... 查看详情

2017.3.14作业

1.使用快捷键切换到虚拟终端22.使用普通用户身份登录,查看系统提示符3.使用命令退出虚拟终端2上登录的用户4.使用快捷键切换到虚拟终端55.使用命令退出虚拟终端5上登录的用户6.?切回图形界面,右单击桌面打开终端,输入关... 查看详情