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设置模式_Ios_Objective C_Core Data - Fatal编程技术网

iOS设置模式

iOS设置模式,ios,objective-c,core-data,Ios,Objective C,Core Data,当我有一个应用程序具有许多类似的视图时,例如滚动视图控制器和应用程序设置的额外视图控制器,并且其中一些设置应该更改滚动视图控制器中某些或所有视图的值,填充这些更改的最佳方法是什么(示例:将所有单位从公制更改为英制) 我目前的尝试是从核心数据中重新加载包含内容的所有视图,并在用户更改设置后应用新配置,这很慢,很不酷,但比循环浏览视图并逐个更新它们更容易和防错误 我也不确定目前是否正确使用了核心数据:我将应用程序启动时的内容加载到我的视图控制器中,并使用该数据在循环中初始化视图。是否有一种简单的模式

当我有一个应用程序具有许多类似的视图时,例如滚动视图控制器和应用程序设置的额外视图控制器,并且其中一些设置应该更改滚动视图控制器中某些或所有视图的值,填充这些更改的最佳方法是什么(示例:将所有单位从公制更改为英制)

我目前的尝试是从核心数据中重新加载包含内容的所有视图,并在用户更改设置后应用新配置,这很慢,很不酷,但比循环浏览视图并逐个更新它们更容易和防错误

我也不确定目前是否正确使用了核心数据:我将应用程序启动时的内容加载到我的视图控制器中,并使用该数据在循环中初始化视图。是否有一种简单的模式可以直接连接核心数据和视图,以便对核心数据中的字段进行更新可以直接更新视图数据


您如何解决这些问题?谢谢您提供的提示。

如果您有个类似的视图,我将使用自定义单元格的UITableViewController。它将更快,使用更少的内存和其他资源

关于设置:将常用设置存储在NSUserDefaults中。使用NSNotificationCenter并将所有单元格添加为观察者。不更改数据,仅根据设置更改单元格的值

当用户更改此设置时:

1. Save them to NSUserDefaults.
2. Post notification
3. All lived cells calls method and update proper subviews

当我们将所有设置存储在NSUserDefaults中时,我们将仅以以下应用程序在
viewDidLoad
方法中启动后的所有设置值为例。

是的,从核心数据重新加载并不好。但您可以在后台执行这些操作,也可以存储一些有价值的变量(如控制器的backgroundColor)在静态类变量中。这意味着,您的设置存储在核心数据之前移动到内存中。如何?您还可以在一些管理器类或设置管理器类中存储有价值的变量。正如gaussblurinc所说,您可以实现设置管理器类并在其中存储值。对于视图更新部分,您应该使用通过观察存储值上的键值,可以自动更新视图。