加载配置常量动态调用setter?

时间:2010-01-18 17:13:50

标签: objective-c configuration-files

我正在寻找一种设置配置常量的好方法。我的想法是用我的配置属性创建一个单例。用 USERID,PASSWORD说 mySingletonConf 。在sharedInstance初始化期间,应该读取配置文件以设置mySingletonConf中的属性。

  1. 我应该为这种类型的常量使用属性吗?我认为他们应该是班级属性?
  2. 是否可以动态设置配置? I. e。 通过读取mySingletonConf的所有Setter-Methods,然后在加载的配置(.plist-Dictionary)中搜索key == property name,然后使用值调用settter?
  3. 如果需要新的常量,动态设置这些东西会很不错。然后我只需要创建新属性并调整配置文件。 我是在正确的轨道上吗? 谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

NSUserDefaults可以处理很多事情,并确保配置是特定于用户的,因此如果同一台Mac上的多个用户使用您的程序,他们可以独立配置您的程序。 Interface Builder中还有一个对象,用于绑定用户界面元素,使事情变得更加容易。如果您执行想要在系统范围内进行配置,则应使用Core Foundation Preference Utilities

要存储密码,您可以使用Apple's Keychain Services。用户能够指定允许哪些程序使用存储的密码(理想情况下只是你的密码)。如果密码没有任何特别重要性,也可以选择在NSUserDefaults中存储密码。

不要重新发明轮子;为您提供了应用程序范围的用户或主机特定配置服务。

答案 1 :(得分:0)

嗯,有可能:) 我最后编写了提到的Singleton,它具有readonly公共属性和类中的readwrite访问权限(使用的类别,请参阅private setter example)。

在初始化期间,类的变量用.plist文件中的值填充。我使用Runtime API来获取变量列表(只是在Stackoverflow上搜索“objective-c变量列表”),并使用var name作为键从loaded.plist字典中获取值。

这些值几乎可以用作常量:

MyConstants* testConstants = [MyConstants sharedInstance];
NSLog(testConstants.PARAM1);