2010-01-18 3 views
1

구성 상수를 설정하는 좋은 방법을 찾고 있습니다. 내 생각은 내 config 속성으로 싱글 톤을 만드는 것이었다. URL, USERID, PASSWORD가있는 mySingletonConf이라고 말하십시오. sharedInstance를 초기화하는 동안 구성 파일을 읽어 mySingletonConf의 속성을 설정해야합니다.setter를 동적으로 호출하는 구성 상수를로드 하시겠습니까?

  1. 이 유형의 상수에 대한 속성을 사용해야합니까? 클래스 수준 속성이어야한다고 생각합니까?
  2. 동적으로 구성을 설정할 수 있습니까? I. e. mySingletonConf의 Setter-Methods를 모두 읽은 다음로드 된 구성 (.plist-Dictionary)에서 키 == 속성 이름을 검색 한 다음 값이? 인 설정 도구를 호출하여?

새로운 상수가 필요한 경우에 대비하여 동적으로 설정하는 것이 좋을 것입니다. 그런 다음 새 속성을 만들고 구성 파일을 조정하면됩니다. 올바른 방향으로 가고 있습니까? 도움 주셔서 감사합니다!

답변

0

NSUserDefaults은 많은 것을 처리 할 수 ​​있으며 구성이 사용자별로 이루어 지도록 보장하므로 동일한 Mac의 여러 사용자가 프로그램을 사용하는 경우 프로그램을 독립적으로 구성 할 수 있습니다. 인터페이스 빌더에는 사용자 인터페이스 요소를 바인딩하는 객체가있어 훨씬 쉽게 작업 할 수 있습니다. 을 수행 할 경우 구성을 시스템 전체에 적용하려면 Core Foundation Preference Utilities을 사용해야합니다.

암호 저장의 경우 Apple's Keychain Services을 사용할 수 있습니다. 사용자는 저장된 암호를 사용할 수있는 프로그램을 지정할 수 있습니다 (이상적으로는 사용자의 것). 비밀번호가 특히 중요하지 않은 경우 비밀번호를 NSUserDefaults에 저장하는 것도 옵션입니다.

휠을 다시 발명하지 마십시오. 응용 프로그램 차원의 사용자 또는 호스트 별 구성 서비스가 제공됩니다.

+0

답변 주셔서 감사 많은! .plist를 사용하여 설정을 읽습니다. .plist에는 수많은 테스트 매개 변수가 포함되어 있습니다. 이제 내가 설정 사전을 가지고 있고 각 TestCase의 모든 단일 테스트 매개 변수에 대해 [configDict objectForKey : paramName]을 실제로 사용하고 싶지 않습니다. 내 생각은 모든 매개 변수를 한 번로드 한 다음 구성을 상수 (PARAM_A) 또는 이와 유사한 것으로 사용하는 것입니다. [myTestConf paramA]; 가능한가? – jelenaasche

0

글쎄, 가능합니다 :) 필자는 언급 된 싱글 톤을 작성했는데,이 클래스는 공개 속성과 읽기 쓰기 액세스 권한을 가지고 있습니다 (클래스 사용, private setter example 참조).

클래스의 vars는 초기화 중에 .plist 파일의 값으로 채워집니다. Runtime API를 사용하여 변수 목록을 얻었고 (Stackoverflow의 "objective-c 변수 목록"검색) var 이름을 키로 사용하여 loaded.plist 사전에서 값을 가져 왔습니다.

다음은 값은 상수로 거의 사용을 할 수 있습니다 :

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