기본 설정 값 인 텍스트 필드를 사용하여 설정 번들을 만들었습니다.설정 번들 - 기본값 동작?
내 응용 프로그램이 시작되고 값을 검색 할 때 null입니다. 사용자가 값을 제공하기 전에 값을 수동으로 코딩해야합니까?
또한 사용자가 환경 설정 화면으로 이동하여 텍스트 필드를 입력 한 다음 값을 변경하지 않고 그대로두면 값이 설정되지 않습니다 ... 사용자가 실제로 값을 변경해야 저장됩니다. 옳은?
기본 설정 값 인 텍스트 필드를 사용하여 설정 번들을 만들었습니다.설정 번들 - 기본값 동작?
내 응용 프로그램이 시작되고 값을 검색 할 때 null입니다. 사용자가 값을 제공하기 전에 값을 수동으로 코딩해야합니까?
또한 사용자가 환경 설정 화면으로 이동하여 텍스트 필드를 입력 한 다음 값을 변경하지 않고 그대로두면 값이 설정되지 않습니다 ... 사용자가 실제로 값을 변경해야 저장됩니다. 옳은?
아니, 그렇게하지 않습니다.
이하는 기능이있다 :
id userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults registerDefaults: defaultSettings];
당신은 당신의 설정에서 plist
파일을 PreferenceSpecifiers
의 모든 하위 키를 반복하여 매개 변수를 구축 할 수 있습니다. 이 같은
뭔가 :
- (NSDictionary *)readDefaultSettingsFromPlist: (NSString *)inPath;
{
id mutable = [NSMutableDictionary dictionary];
id settings = [NSDictionary dictionaryWithContentsOfFile: inPath];
id specifiers = [settings objectForKey: @"PreferenceSpecifiers"];
for (id prefItem in specifiers) {
id key = [prefItem objectForKey: @"Key"];
id value = [prefItem objectForKey: @"DefaultValue"];
if (key && value) {
[mutable setObject: value
forKey: key];
}
}
return [NSDictionary dictionaryWithDictionary: mutable];
}
키에 null이 있으면 앱을 체크인 할 수 있습니다. 자신의 기본값을 사용할 수 있습니다.
Settings App에 기본값이 표시되지만 NSUserDefaults standardUserDefaults에 자동으로 저장되지는 않습니다. 따라서 nil 값을 발견하면 명시 적으로 기본값을 설정해야합니다. 이 같은
뭔가 :
+ (NSString *)userDefaultStringForKey:(NSString *)key defaultValue:(NSString *)def {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *val = [defaults stringForKey:key];
if (val == nil && def != nil) {
val = def;
[defaults setObject:val forKey:key];
}
return val;
}
havent 한 그것을 시도하지만,이 certinly는 하드 코드 기본값보다 더 적절한 : – Nippysaurus
그래, 내가 여기에 코드를 보장 할 수 없습니다 보인다. 나는 그것을 작성하고 그것을 전에 사용했습니다. 이 코드를 다른 프로젝트 (여기서는 내 검색)에 통합 할 예정입니다. 그래서 문제가 있다면 그것을 업데이트하겠습니다. –
잘 처리했습니다. :) –