كيفية الحفاظ على اي فون التطبيق الدولة قبل إنهاء التطبيق ؟

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

سؤال

لقد وضعت تطبيق اي فون مع شريط التبويب الملاحة وحدات تحكم.

هو يعمل بشكل جيد الآن.

الآن أريد تطبيق لإنقاذ الدولة قبل الإقلاع عن التدخين.

لنفترض لدي 6 علامات وإذا مكالمة واردة يأتي ذلك بعد إطلاق التطبيق يجب أن ترى علامة التبويب المحدد الذي تم أخيرا اختيار .

لقد رأيت العديد من الأسئلة حول هذا الموضوع ولكن أنا أكثر حيرة بعد رؤيتهم ،

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

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

المحلول

لا يوجد "مقاس واحد يناسب الجميع" ، الاجابة على هذا السؤال - تنفيذ تطبيق لتوفير الدولة اعتمادا كبيرا على بنية تطبيق لدرجة أن أي حل واحد من غير المرجح أن تناسب حالة محددة.

هناك بعض النصائح العامة و مؤشرات ، ومع ذلك ، ينبغي أن يضعك على الطريق الصحيح لتطوير حالة جيدة للحفاظ على الحل:

  1. عادة سوف تحتاج إلى تنفيذ أي عمليات إنقاذ الدولة في applicationWillTerminate: في التطبيق الخاص بك مندوب أو من خلال الاستماع UIApplicationWillTerminateNotification في فئات أخرى.

  2. انظر NSUserDefaults. يمكنك استخدام NSUserDefaults لتخزين أزواج مفتاح/قيمة (مماثلة إلى NSDictionary, على الرغم من أنك يمكن تخزين الأشياء التي تنفذ NSCoding في NSUserDefaults) المتعلقة تفضيل أو غيرها من المعلومات.استخدام NSUserDefaults لتخزين معلومات الدولة.التحذير واحد - لا يجب استخدام NSUserDefaults لتخزين كميات كبيرة من البيانات ، كما أن هذا سوف تبطئ التطبيق الخاص بك إطلاق الوقت (لأن القيم هي محملة على الإطلاق).

  3. أكثر تحديدا إلى حال...إذا كان كل ما تريد القيام به هو الحفاظ على اختيار علامة التبويب بين تطبيق ، يجب أن تنفذ applicationWillTerminate: واستخدام NSUserDefaults لتخزين اختيار علامة التبويب الفهرس.ثم في applicationDidFinishLaunching: تنفيذ عليك التحقق من وجود هذا NSUserDefaults الرئيسية وتعيين UITabBarController المختارة مؤشر إلى القيمة المخزنة إذا كان موجودا.

  4. إذا كنت تريد أن تكون قادرة على استعادة, على سبيل المثال, الملاحة كومة من اختيار علامة التبويب كذلك, ثم سوف تحتاج إلى تخزين معلومات كافية بحيث الملاحة كومة يمكن بناؤها بدقة.ما هي المعلومات التي يجب تخزينها في NSUserDefaults من الصعب قياس بالمعنى العام كما هي محددة للغاية إلى هيكل التطبيق الخاص بك و من الممكن تكرار تحكم عرض التسلسل الهرمي داخل الملاحة المكدس.

  5. إذا كنت بحاجة إلى استعادة أكثر عمومية الملاحة كومة ، بما في ذلك إدخال بيانات المستخدم التي كنت لا تريد أن تضيع عندما يتم إغلاق التطبيق (مثل إذا كان المستخدم هو إنشاء سجل جديد من نوع), وأود أن أقترح عليك أن تحول التركيز الخاص بك بعيدا عن تخزين حالة التطبيق في التطبيق مستوى المندوبين والتركيز بدلا من ذلك على وجود تحكم عرض دروس الاستماع UIApplicationWillTerminateNotification وهل الخاصة إنقاذ الدولة.سيكون لديك أيضا إلى تحديد آلية استخدام تلك المعلومات المحفوظة في عرض تحكم على إنهاء لاستعادة الملاحة الهرمي.هذا هو أكثر تعقيدا التقنية التي قد لا تكون ضرورية اعتمادا على الاحتياجات الخاصة بك.

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

هنا هو مثال على استخدام NSUserDefaults: http://robertcarlsen.net/2009/06/19/overly-simplistic-saving-state-in-of-for-iphone-847

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