سؤال

لقد قمت بتطوير طلبي باستخدام جهاز 3G الخاص بي لاختباره. عند تقديم هذا إلى صديق لاختبار، لاحظ أنه يحطمه .. لقد ألقي نظرة على سجل الأعطال، لكنها ليست استخداما كبيرا باستثناء بيان "exc_bad_access" بعد تحذيرات بعض الذاكرة.

على جهازي، يمكنني استخدام الكثير من ImagePicker، وفي كل مرة تؤخذ فيها صورة، أحصل على تحذير ذاكرة، لكن هذا لا يسبب أي مشاكل.

على جهاز صديقي (أيضا 3G)، بعد بعض الصور المختارة من الكاميرا، تعطل التطبيق.

لذلك، سؤالي هو .. أنا فكر في يتم تلخيص شيء ما بسبب تحذير الذاكرة - ولكن فقط على جهاز صديقي، ثم بعد الكتب، يحاول استخدامه مرة أخرى. كيف يمكنني معرفة أي كائن يسمى؟ لا يمكنني استخدام NSZombies لأن هذا جهاز بعيد (بيتا).

ساعدنى من فضلك!

أيضا إذا كان لدى أي شخص أي أفكار لماذا يمكن لجهازي اختيار الصورة بعد الصورة دون أي مشكلة ولا يمكن أن يكون ذلك مفيدا للغاية

شكرا!

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

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

المحلول

قد تكون أكثر من مجرد إطلاق شيء ما. إذا كنت تقوم بتشغيل Snow Leopard، فقم بتشغيل المحلل الثابت (CMD-Shift-A) وابحث عن أخطاء الذاكرة.

حقيقة أنه يعطل بعد خطأ في الذاكرة يقترح أن UiviewController قد أصدر عرضه. هل لديك أي UIViewControllers التي تلاحظ nsnotification، أو قد تغير iboutlets الخاصة بهم أثناء تفريغ الشاشة؟ هذا سبب شائع لهذا النوع من الحادث. تأكد من أنك الذاكرة بشكل صحيح تدير iboutlets. وبعد يجب ألا يفوض UiviewControllers أبدا مع iboutlets (أو مكوناتها UI على الإطلاق) عندما تكون خارج الشاشة. حتى إذا لم تقدم هذا الخطأ، إذا لم تكن تنفذ أشياء كما هو مذكور في الرابط أعلاه، فلا يزال بإمكانك تعطل بعد تحذيرات الذاكرة.

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

نصائح أخرى

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

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