Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.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
Iphone Cocoa Touch中的关键值观察_Iphone_Cocoa Touch_Key Value Observing_Key Value Coding_Key Value - Fatal编程技术网

Iphone Cocoa Touch中的关键值观察

Iphone Cocoa Touch中的关键值观察,iphone,cocoa-touch,key-value-observing,key-value-coding,key-value,Iphone,Cocoa Touch,Key Value Observing,Key Value Coding,Key Value,我一直在阅读键值观察,我发现ViewController会监听模型中的更改以更新视图。稍有不同:模型如何知道自己的参数已更新 例如,我的视图上有一个按钮可以更改模型的一个参数,另一个按钮可以更改另一个参数。如果其中一个发生更改,我需要更新卷。最好的方法是:1)在我的ViewController中的每个单独的“ButtonPressed”方法中调用模型的UpdateVolume方法,或者让模型自己进行键值观察,并且每当任何参数发生变化时,调用UpdateVolume?如果我实现更多的参数,后者似乎

我一直在阅读键值观察,我发现ViewController会监听模型中的更改以更新视图。稍有不同:模型如何知道自己的参数已更新

例如,我的视图上有一个按钮可以更改模型的一个参数,另一个按钮可以更改另一个参数。如果其中一个发生更改,我需要更新卷。最好的方法是:1)在我的ViewController中的每个单独的“ButtonPressed”方法中调用模型的UpdateVolume方法,或者让模型自己进行键值观察,并且每当任何参数发生变化时,调用UpdateVolume?如果我实现更多的参数,后者似乎更方便,每个参数都由ViewController使用不同的方法进行更新

谢谢,
约翰

让模特对自己进行观察听起来是错误的。它完全了解自身,因此不需要在自身上使用KVO进行松耦合。只要让每个按钮调用更新模型所需的任何公共模型API。模型将实现任何逻辑并生成结果,VC将使用KVO监视该结果,并相应地更新其视图。它就像一个符咒