Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UITableViewCell子类中处理UIButton touch事件会违反MVC吗?_Ios_Objective C_Uitableview_Model View Controller_Uibutton - Fatal编程技术网

Ios 在UITableViewCell子类中处理UIButton touch事件会违反MVC吗?

Ios 在UITableViewCell子类中处理UIButton touch事件会违反MVC吗?,ios,objective-c,uitableview,model-view-controller,uibutton,Ios,Objective C,Uitableview,Model View Controller,Uibutton,有一个UITableViewCell子类,里面有一个UIButton。按下按钮时应进行网络呼叫 问题是我应该在控制器中设置操作,还是可以在UITableViewCell子类中设置操作?第二个选项会违反MVC模式吗?第二个选项肯定会违反MVC模式。ViewController就像模型、视图之间的粘合剂,包含所有业务逻辑。 ViewController应该接收操作,然后进行api调用,并将格式化数据放入视图中 通常在我的项目中,我总是尝试将网络代码移动到一组单独的类中,这些类可以处理从API获取数据

有一个
UITableViewCell
子类,里面有一个
UIButton
。按下按钮时应进行网络呼叫


问题是我应该在控制器中设置操作,还是可以在
UITableViewCell
子类中设置操作?第二个选项会违反MVC模式吗?

第二个选项肯定会违反MVC模式。ViewController就像模型、视图之间的粘合剂,包含所有业务逻辑。 ViewController应该接收操作,然后进行api调用,并将格式化数据放入视图中

通常在我的项目中,我总是尝试将网络代码移动到一组单独的类中,这些类可以处理从API获取数据、从JSON/XML转换为模型对象并格式化它们(从字符串日期对象到NSDate对象等)。然后我可以在我的ViewController中调用simple looking方法并填充视图/tableview单元格

另一方面,

如果你有时间,你可以看看越来越流行的MVVM。 这里有一些链接(从非常棒的SprSynthesis开始):

  • 以及一些示例应用程序:

  • 通过与MVVM的比较,这有助于我更深入地理解MVC

    不要害怕使用ReactiveCocoa,在没有它的情况下,您总是可以采用MVVM,但是值得一看。(它的学习曲线非常陡峭,我仍然觉得自己像个白痴)

    还有一篇关于iOS实现的设计模式的文章:


    第二个选项肯定会违反MVC模式。ViewController就像模型、视图之间的粘合剂,包含所有业务逻辑。 ViewController应该接收操作,然后进行api调用,并将格式化数据放入视图中

    通常在我的项目中,我总是尝试将网络代码移动到一组单独的类中,这些类可以处理从API获取数据、从JSON/XML转换为模型对象并格式化它们(从字符串日期对象到NSDate对象等)。然后我可以在我的ViewController中调用simple looking方法并填充视图/tableview单元格

    另一方面,

    如果你有时间,你可以看看越来越流行的MVVM。 这里有一些链接(从非常棒的SprSynthesis开始):

  • 以及一些示例应用程序:

  • 通过与MVVM的比较,这有助于我更深入地理解MVC

    不要害怕使用ReactiveCocoa,在没有它的情况下,您总是可以采用MVVM,但是值得一看。(它的学习曲线非常陡峭,我仍然觉得自己像个白痴)

    还有一篇关于iOS实现的设计模式的文章:


    您可以从子类将操作委托给控制器,这样它将在控制器中处理,清除,并且不会违反MVC。

    您可以从子类将操作委托给控制器,这样它将在控制器中处理,清除,并且不违反MVC。

    我不建议在UITableViewCell中设置操作。如果您需要等待答案,并且电池需要回收,您会怎么做?我将在控制器中设置操作。此控制器应调用另一个负责执行web调用的类。

    我不建议在UITableViewCell中设置该操作。如果您需要等待答案,并且电池需要回收,您会怎么做?我将在控制器中设置操作。此控制器应调用另一个负责执行web调用的类