DefaultValue of Settings.bundle doesn't work? (NSUserDefaults)
7227 단어 NSUserDefaults
Detect the set item value in the program's - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}, if it is nil, set it to the value of DefaultValue:
//
[YourApp]AppDelegate.m
-
(BOOL)application:(UIApplication
*
)application
didFinishLaunchingWithOptions:(NSDictionary
*
)launchOptions {
NSString
*
name
=
[[NSUserDefaults standardUserDefaults]
stringForKey:
@"
name_preference
"
];
if
(
!
name) {
//
[self performSelector:@selector(registerDefaultsFromSettingsBundle)];
}
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return
YES;
}
//
-
(
void
)registerDefaultsFromSettingsBundle {
NSString
*
settingsBundle
=
[[NSBundle mainBundle] pathForResource:
@"
Settings
"
ofType:
@"
bundle
"
];
if
(
!
settingsBundle) {
NSLog(
@"
Could not find Settings.bundle
"
);
return
;
}
NSDictionary
*
settings
=
[NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:
@"
Root.plist
"
]];
NSArray
*
preferences
=
[settings objectForKey:
@"
PreferenceSpecifiers
"
];
NSMutableDictionary
*
defaultsToRegister
=
[[NSMutableDictionary alloc] initWithCapacity:[preferences count]];
for
(NSDictionary
*
prefSpecification
in
preferences) {
NSString
*
key
=
[prefSpecification objectForKey:
@"
Key
"
];
if
(key) {
[defaultsToRegister setObject:[prefSpecification objectForKey:
@"
DefaultValue
"
] forKey:key];
}
}
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
[defaultsToRegister release];
}
Download DefaultSettingsDemo
Ref: http://stack overflow.com/questions/510216/miserable-have-mark-he-and-settings-in-settings-bundle-default-even-if-have-don't-open-he-and-is
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DefaultValue of Settings.bundle doesn't work? (NSUserDefaults)The first time I need to use the iPhone system configuration, I found that the DefaultValue in Settings.bundle/Rool.plis...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.