آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

Swift Managing Memory

Farshid Roohi  6 سال پیش  6 سال پیش
+1 0

سلام

من یک اپلیکیشن ساختم که وقتی توی صفحاتش میگردی و لیست ها و عکس ها رو نگاه میکنی (بصورت آنلاین) بعد از گذشت چند دقیقه حافظه پر میشه و اپلیکیشن کند میشه یعنی حتی روی یک دکمه کلیک میکنی که بری توی یک صفحه دیگه با تاخیر انجام میده و در نهایت بعد چند دقیقه  از برنامه خارج میشه و کرش میکنه.

عکس های نشان داده شده توی برنامه بصورت دانلود شدس طبق آموزش های آقای کاشیزاده.

حالا سوال من اینجاست برای اینکه این مشکل بزرگ رو حل کنم باید حافظه کش شده رو پاک کنم یا کار دیگه ایی انجام بدم؟

0 0
سلام ، برای نمایش عکس از TableView استفاده کردید ؟ (6 سال پیش)
0 0
درود آقای کاشی زاده . بنده هم در یکی از تیبل ویو هام تصاویر نشون می دم و هرچی کاربر بیشتر درخواست رکورد می کند عکس بیشتر می آید . فکر کنید اپ دیجی کالا و ..همه تصاویر دارند و تیبل ویو هستند و من تو اپ های تستم تو سیستم کندی ندیدم می شه بفرماید چرا گفتید TableView ؟ (6 سال پیش)
0 0
بله از table view استفاده کردم (6 سال پیش)
0 0
توی اپلیکیشن عکس ها رو به صورت لیست و گرید نشون میدم. توی اندروید از glide استفاده میکنم که باهاش سایز عکس لود شده رو کم میکنم که این توی اپ خیلی تاثیر داره ولی توی IOS کاری شبیه به این رو نتونستم انجام بدم (6 سال پیش)
+1 0
من فکر میکنم از کتابخونه ی زیر استفاده کنید بهتره و خیالتون از بابت کش هم راحت میشه چون تو خودش هندل کرده بسیار عالیه لینک حتی برای کنترل میزان دانلود هم توابع خوب و هندلر های خوبی داره که به پروگرس بار هم نیازی پیدا نمیکنید. (6 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
کاشی زاده  6 سال پیش
0 0

میزان حافظه ای که هر برنامه در اختیار دارد محدود است و زمانی که اطلاعات با حجم زیاد را در List لود کنید مطمئنا مشکل کندی پیش می آید .
خاصیت Table View آن است که به اندازه صفحه نمایش شما اجازه تولید آیتم را میدهد. چنانچه حجم عکس های لود شده در همین تعداد محدود زیاد باشد کندی را بهمراه دارد و یا اینکه Table View شما به تعداد آیتم های شما افزوده و از آیتم های قبلی استفاده نکند .

به طور کل نمایش عکس با حجم زیاد در لیست ها کار فنی نیست . بهترین روش برای نمایش لیستی از آیتم های همراه با عکس استفاده از Thumbnail است.
همینطور بهتر است این Thumbnail ها در سمت سرور با اندازه مناسب با صفحه نمایش کاربر مثلا 96 * 96 پیکسل و یا بیشتر تولید شود و پردازش تغییر اندازه در سمت کلاینت انجام نشود .
یا اگر قصد انجام تغییر بر روی تصویر دانلود شده را دارید بهتر است غیر از نسخه اصلی نسخه دیگری با عنوان کش تولید کنید تا در زمان بارگذاری مجدد آن این پردازش مجددا انجام نشود .

0 0
من سمت سرور دسترسی ندارم که سایز عکس ها رو برای لیست کوچیک کنم خب این بدیهی ترین کاری که میشه کرد هست. من میخوام بدونم میشه چیزی شبیه به مکانیسم glide توی اندروید رو پیاده سازی کرد بدون دردسر (6 سال پیش)
+1 0
دقیقا کاری که کتابخانه هایی مثل گلاید و یا پیکاسو در اندروید میکنند همین تغییر سایز و تولید کش است . شما میتونید یک کتابخانه دانلود با قابلیت تولید کش در سایز های مناسب تولید کنید و زمانی که آدرس عکس را میدهید نسخه کش شده را تحویل بگیرید . (6 سال پیش)
0 0
مهندس کاشی زاده هر تصویر کاربر بالا می یاره . یک بار بالا می یاره در حقیقت بخاطر همین کش زیاد کارایی نداره . شما فکر کنید اپ اینستا کاربر یک بار بالا پایین می ره و اپ می بنده . دوباره هم بره فقط پست های جدید رو می بینه !! به صورت مثال . جز پایین آوردن حجم تصویر راه دیگه ای به فکرتون نمی رسه ؟ (6 سال پیش)
+1 0
وقتی شما از TableView استفاده میکنید تنها به تعداد آیتم هایی که داخل صفحه قرار دارد عکس در حافظه ذخیره دارید و آیتم هایی از صفحه خارج میشه از حافظه نیز خارج میشود . (6 سال پیش)
0 0
بنظرم آموزش ها خیلی جای کار داره و فقط برای مبتدی ها مناسب هست امیدوارم در آینده نه چندان دور ویدئوهای بهتری با سطح های بالاتری عرضه بشه. (6 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .