كيف تعرف متى قام المستخدم بتغيير إلى إعدادات الإعدادات

StackOverflow https://stackoverflow.com/questions/5482573

  •  14-11-2019
  •  | 
  •  

سؤال

أسمح للمستخدم بإجراء تغييرات على إعداداتهم في منطقة الإعدادات في iPhone.أثناء مزامنة الشبكة التالية، أود إرسال تغييرات المستخدم إلى الخادم.ولكن فقط إذا تم إجراء التغييرات.

ولكن كيف أعرف متى أجرى المستخدم تغييرا داخل منطقة الإعدادات؟

إذا استطعت، أود تجنب خيار إرسال المعلومات دائما بغض النظر عما إذا تم تغييره أم لا أو الحصول على معلومات من الخادم أولا وتحديثه إذا كان مختلفا عن الإعدادات الافتراضية للمستخدم.

هل هناك طريقة لطيفة وأنيقة لحل هذه المشكلة؟ شكرا لمساعدتكم!

بعد أسبوع ولا إجابات ... هل هذا السؤال صعب للغاية أو لا معنى له على الإطلاق؟

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

المحلول

آه سخيفة لي!هنا نذهب مع طريقة أنيقة.ابحث عن AppPrefs في وثائق Apple داخل XCode وسيتم عرض تطبيق مثال يعمل بالضبط ما تريد القيام به.مجرد ترجمة وتشغيل!يستخدم nsuserdefaultsdibrchangenotification .

هذا هو التعليمات البرمجية المستخدمة لتسجيل المراقب: giveacodicetagpre.


الإجابة القديمة:

لا يبدو كما لو أنه يمكنك الحصول على تاريخ التعديل من NSUSERDEFAULTS.حتى الآن يمكنني فقط التفكير بهذه الطريقة: giveacodicetagpre.

عليك أن تنقذ المستخدم افتراضي بنفسك في القاموس على القرص عند تشغيل التطبيق في المرة الأولى: القيم الافتراضية الخاصة بك.ثم، في كل مرة يتم فتح التطبيق تقارن هذه القواميس.إذا كانوا

نصائح أخرى

ليس هذا السؤال صعب للغاية، فهذا لا تكون هناك طريقة بسيطة للقيام بما تسأله.NSUserDefaults لا يسجل "آخر تعديل" لتاريخ إعدادات كل تطبيق، على الأقل بقدر ما أستطيع أن أقول، لذلك إذا كان المستخدم يغير بعض الإعدادات باستخدام تطبيق الإعدادات، فلا توجد طريقة جيدة للكشف عن ذلكجميع الإعدادات.

إذا كنت بحاجة حقا للقيام بذلك، أعتقد أن أفضل رهان لديك هو قراءة الإعدادات التي تهتم بمزامنة بعض بنية البيانات وحساب نوع من التجزئة أو المجموع الاختباري بناء على هذا الهيكل.قارن هذه القيمة إلى القيمة التي قمت بحساب آخر مرة ركض فيها التطبيق، ومزامنة الخادم إذا كان مختلفا.يمكنك تخزين هذه القيمة في NSUserDefaults إذا كنت تريد، ولكن تأكد من عدم تضمينها في الحساب.

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