سؤال

ال NSUserDefaults وثائق API لديها boolForKey: الرسالة الموصوفة مثل هذه -

boolForKey:

إرجاع القيمة المنطقية المرتبطة بالمفتاح المحدد.

- (BOOL)boolForKey:(NSString *)defaultName

قيمة الإرجاع إذا كانت القيمة المنطقية مرتبطة بـ DefaultName في تخفيضات المستخدم ، يتم إرجاع هذه القيمة. خلاف ذلك ، لا يتم إرجاع لا.

بالنظر إلى ذلك [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"] يعيد لا يمكن أن يكون إما لأن المفتاح غير موجود أو موجود المفتاح ولديه أ boolean القيمة لا. كيف يمكننا التمييز؟ اعتبارا من الآن ، لا يمكنني إلا تجنب الدخول في هذا الموقف في المقام الأول.

هل كانت مفيدة؟

المحلول

أنت تستخدم الإعدادات الافتراضية للمستخدم بشكل غير صحيح. عند إطلاق تطبيقك ، من المفترض أن تتصل -[NSUserDefaults registerDefaults:] مع قاموس يحتوي على القيم الافتراضية لجميع التفضيلات.

ثم ، إذا لم يكن المستخدم يضع تفضيلًا ، -boolForKey سيعود القيمة الافتراضية.

نصائح أخرى

استخدم ال -objectForKey: الطريقة كذلك. هذا سيخبرك ما إذا كان المفتاح موجودًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top