Tôi vừa thêm một gói cài đặt vào ứng dụng của mình và gặp sự cố khi đọc cài đặt bool. Tôi biết rằng khi khởi chạy ứng dụng, cài đặt sẽ không được đọc trừ khi người dùng thực sự nhập chúng - và đó là những gì tôi đang cố chụp.iphone dev - NSUserDefaults kiểm tra sự tồn tại boolean
Tuy nhiên, mã của tôi chỉ đơn giản là ghi lại nếu câu trả lời là KHÔNG HOẶC họ không được đặt. Tôi cần phải tìm hiểu xem họ đã được thiết lập, THEN đặt câu trả lời!
đang thiết lập:
BOOL playSound;
BOOL playVibrate;
//test for some defaults
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (![prefs boolForKey:@"pref_sound"]) {
playSound = YES;
playVibrate = YES;
} else {
playSound = [prefs boolForKey:@"pref_sound"];
playVibrate = [prefs boolForKey:@"pref_vibrate"];
}
if (playSound) {
//do stuff
}
vấn đề là, nếu người dùng đặt các thiết lập để "KHÔNG", mã sau đó thay đổi cả rung và âm thanh để có - đó là có nghĩa là chụp cho KHÔNG thiết ....
bất kỳ ý tưởng nào?
cảm ơn vì điều này - objectForKey dường như đã thực hiện thủ thuật! Tôi đã nhận thấy boolForKey sẽ trả về NO nếu không được thiết lập, vì vậy cố gắng == nil, nhưng điều đó không làm việc. thanks :) –
Niềm vui của tôi :) Mẹo cuối cùng, hãy sử dụng tùy chọn nhấp đúp vào Xcode. Tài liệu của Apple rất đáng kinh ngạc nên bạn thường có thể giải quyết các vấn đề của mình thông qua "phương pháp này làm gì"? Chúc mừng! –
Đảm bảo bạn sử dụng '[mặc định đồng bộ hóa];' ở cuối câu lệnh if đó để đồng bộ hóa các giá trị. – mattblessed