2014-01-14 2 views
0

각 개발자가 Objective-C 및 git에서 잘 작동하고 기본 구성을 지원하는 다른 구성 (예 : 서버 URL, 구성 플래그)을 갖도록하는 좋은 방법을 찾고 있습니다. 하나의 아이디어는 두 개의 plist 파일을 갖는 것입니다 : 하나는 모든 기본값으로 자식을 검사하고 하나는 체크인하지 않고 사용자 정의 무시를 포함합니다.iOS 개발자마다 다른 설정 클래스를 만들려면 어떻게해야합니까?

정적 plist보다 유연성이 좋으면 조건부로로드 된 클래스에 대해 생각하기 시작했습니다. Like :

이러한 종류의 dev-dev 구성에는 권장되는 해결책이 있습니까?

답변

0

이렇게하면 MyConfigManager은 아무런 영향을받지 않습니다. +[load]은 시작시 런타임에 의해 호출되는 configs를 등록하는 데 사용됩니다. load이 모든 범주에 호출되기 때문에

@implementation MyConfigManager 

static NSMutableDictionary *defaults; 

+ (NSMutableDictionary *)mutableDefaults 
{ 
    static dispatch_once_t pred; 
    dispatch_once(&pred, ^{ 
     defaults = [[NSMutableDictionary alloc] init]; 
    }); 
    return defaults; 
} 

+ (void)addDefaults:(NSDictionary *)dict 
{ 
    [[self mutableDefautls] addEntriesFromDictionary:dict]; 
} 

+ (NSDictionary *)config 
{ 
    return [self mutableDefaults]; 
} 

@end 

@implementation DeveloperConfig 

+ (void)load 
{ 
    [MyConfigManager addDefaults:@{@"key":@"value"}]; 
} 

@end 

당신도 새로운 클래스를 필요가 없습니다

@interface MyConfigManager (DeveloperConfig) 
@end 
@implementation MyConfigManager (DeveloperConfig) 
+ (void)load 
{ 
    [self addDefaults:@{@"key":@"value"}]; 
} 
@end 
관련 문제