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

Kha*_*azi 6 model-view-controller objective-c cs193p ios

我正在通过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

作为总结,先前的任务已经要求建立一个常规计算器,现在这个任务要求我们将这个计算器推送到一个Nav控制器并从该CalculatorViewController创建一个segue到GraphViewController,它将绘制存储在"CalculatorBrain"中的函数.这个CalculatorBrain是原始CalculatorViewController的模型.

提示#5继续谈论的事实是,现在GraphViewController的模型与CalculatorViewController的模型不同,我无法弄清楚他的意思.

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

-(void) setGraphView:(GraphView *)graphView
  {
  _graphView=graphView;   
  self.graphView.dataSource=self;
  }
Run Code Online (Sandbox Code Playgroud)

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

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  if([segue.identifier isEqualToString:@"Graph"])
  {
    GraphViewController *myGraphViewController = segue.destinationViewController;
    myGraphViewController.myCalculator=self.myCalcBrain;
  }
}
Run Code Online (Sandbox Code Playgroud)

所以这似乎工作正常.所以,如果这样做,那意味着GraphViewController的模型真的是原来的计算器大脑,他特别说它不是!

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

小智 3

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