مدیریت حافظه در برنامه نویسی iOS به زبان Swift - قسمت دوم

به نام خدا

بعد از چهار ماه گذشتن از قراردادن قسمت اول این آموزش تصمیم گرفتم قسمت دوم رو قرار بدم

یه مرور یه خطی به آموزش قبلی:

۰- هممممه ی تایپ ها اعم از Int, String, Array, Dictionary,Struct و... (به غیر از کلاس و کلاژر ) وقتی داخل یه متغییر دیگه ای assign میشن در واقع یه کپیشون توی رم ساخته میشه و اون متغییر به این مقدار جدید اشاره میکنه یعنی با تغییر دادن این متغییر جدید روی متغیر قبلی هیچ تغییری ایجاد نمیشه

۱.سویفت از مدیریت حافظه مرجع شماری استفاده میکنه

۲. دو تا از تایپ های سویفت به صورت مرجع استفاده میشن و مرجع شماری فقط برای این دو تا نوع استفاده میشه اولیش کلاس ها هستن و دومیش Clouser ها

۳. وقتی یک کلاس یا Clouser ساخته میشه و در یک متغییر assign میشه retain count اون آبجکت برابر ۱ میشه و هرچقدر این آبجکت رو در متغییر های دیگه assign کنیم یکی به این عدد اضافه میشه  و هرموقع متغییر ها scope شون تموم بشه یا خودمون برابر با nil قرارشون بدیم از این عدد کم میشه تا به صفر برسه و اون آبجکت ساخته شده از توی رم حذف بشه

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

نوشته شده توسط محمد فلاح

منتشر شده در

۹ اسفند

Nib چیست؟

به نام خدا

یکی از مفاهیم اصلی و مهم ای او اس بخش فایل های xib و  nib میباشد. که به نظرم باید هر برنامه نویس ios اونا رو خوب بلد باشه تا بتونه یه برنامه خوبی رو توسعه بده.

نوشته شده توسط محمد فلاح

منتشر شده در

۳ اسفند

escaping و non-escaping در سویفت چیست؟

به نام خدا

شاید اسمش رو شنیده باشید یا کسی از شما سوال کرده باشه یا حتی خودتون حین برنامه نویسی بهش برخورد کرده باشید؟

نوشته شده توسط محمد فلاح

منتشر شده در

۲۲ آبان

ساخت برنامه چند زبانه در آی او اس

به نام خدا

خیلی از پروژه های بزرگ لازم دارند که به چندزبان روز دنیا اجرا بشن. به خصوص این موضوع توی آی او اس دیده میشه چون انتشار برنامه ها در اپ استور هست که یه استور جهانیه و با داشتن این فرصت میتونیم تا حد ممکن کاربر جمع کنیم :)

نوشته شده توسط محمد فلاح

منتشر شده در

۲۱ فروردین

باز شدن لینک مشخص در برنامه آی او اس - Universal Links

به نام خدا

یکی از کارهایی که توی ساخت اپ های بزرگ باید انجام بدید اینه که اگه یه لینکی توی گوشی باشه و مربوط به اپلیکیشن باشه شما بتونید اون لینک رو از سیستم عامل بگیرید و برنامه خودتون رو باز کنید و اون چیزی که باید نمایش بدید رو نشون بدید.

مثلا دیجی کالا که شما میتونید با کلیک روی لینک محصولاتش توی هرجایی از گوشیتون (مثل تلگرام) وارد برنامه دیجی کالا و صفحه همون محصول بشید.

نوشته شده توسط محمد فلاح

منتشر شده در

۸ فروردین

آموزش ساین گرفتن و انتشار در سیب اپ

به نام خدا

بعد از خرید یه لپ تاپ اپل و یه آیفون برای تبدیل شدن به برنامه نویس آی او اس نوبت به خرید یه اکانت سالیانه ۹۹ دلار میرسه که برای انتشار اپ توی اپ استور نیاز به این اکانت دارید البته اگه بخواید برنامه رو بزارید توی اپ استور های ایرانی مثل سیب اپ فقط کافیه یه اکانت برای ساین گرفتن داشته باشید یعنی مهم نیست از کی باشه و میتونید یه اکانت بگیرید (که قیمتشو پرسیدم گفتن ساین تک اپ ۲۵۰ تومنه)

نوشته شده توسط محمد فلاح

منتشر شده در

۱۹ بهمن

مشکل در ساین برنامه آی او اس - You already have a current iOS Development certificate or a pending certificate request.

به نام خدا

سلام هرموقع که شما روی دوتا سیستم بخواید یه اپ رو ساین بگیرید به این مشکل میخورید که برای حل این مشکل باید وارد حساب دولووپر اپل بشید و در قسمت Certificate اسم اون برنامه به همراه نام کاربری سیستمی که روش ساین گرفتید دیده میشه.
کافیه روش کلیک کنید و گزینه Revoke رو بزنید

نوشته شده توسط محمد فلاح

منتشر شده در

۱۳ بهمن

آموزش ساخت کاستوم ویوی پیام صوتی برای آی او اس

بسم الله الرحمن الرحیم

در دو جلسه پیش دو آموزش در مورد ساخت کاستوم ویو ها خدمتتون تقدیم شد که امیدوارم اول اونا رو بخونید از اینجا میتونید دو آموزش قبلی رو پیدا کنید (آموزش قسمت اول و آموزش قسمت دوم) در این جلسه قصد داریم یه طرحی که توی سایت دیریبل دیدم باهم پیاده کنیم

نوشته شده توسط محمد فلاح

منتشر شده در

۲۲ دی

آموزش ساخت کاستوم ویو در XCode برای IOS - قسمت اول

بسم الله الرحمن الرحیم

یه وقتایی وقتی میخوایم مزیت های استفاده از زبان نیتیو رو بیان کنیم میگیم میتونیم توش هرکاری بکنیم مثلا اگر گرافیستمون یه ویوی جدیدی زد که هیچ کجا نبود خودمون میتونیم بسازیم

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

شما هیچوقت نمیتونید با جاوا اسکریپت توی ری اکت نیتیو یه ویو بزنید تنها کار اینه که برید با جاوا برای اندرویدش یه ویو بزنید و بعد توی سویفت هم اون ویو رو برای ای او اس پیاده کنید و بعد ازشون استفاده کنید

پس چه برنامه نویس ای او اس به زبان سویفت باشید چه ری اکت نیتیو کار٬ این پست به دردتون میخوره

نوشته شده توسط محمد فلاح

منتشر شده در

۲۰ دی

هرآنچه از RxSwift آموختم! (قسمت سوم)

به نام خدا

توی قسمت قبل یاد گرفتیم چجوری یه متغیر بسازیم و اونو Subscribe کنیم یه خورده هم به این بحث که چجوری اون متغییر رو به یه ویو bind کنیم پرداختیم

نوشته شده توسط محمد فلاح

منتشر شده در

۲۳ آذر