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

به نام خدا

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

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

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

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

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

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

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

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

منتشر شده در

۹ اسفند

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

به نام خدا

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

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

منتشر شده در

۲۲ آبان

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

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

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

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

منتشر شده در

۲۷ مهر

پیش نیازهای یک برنامه بزرگ آی او اس (تجربه)

به نام خدا

یکی از مزایای کارهای گروهی و همچنین انجام کارهای بزرگ کسب تجربه در طول توسعه اپ هست. اپ های بزرگ همیشه به دولوپر ها کمک میکنند تا بیشتر به یادگیری بپردازند. مثلا یه برنامه نویس معمولی در سطح متوسط که کار با RESTful API ها رو بلده و برای خودش برنامه مینویسیه شاید هیچوقت به سمت چیزهای جدید نره و بخواد همیشه در سطح خودش بمونه حتی اگه گاهی هم یه ایده ای به ذهنش برسه که نیاز به دانش بیشتری داشته باشه اون ایده رو اجرایی نکنه یا بخواد اون ایده رو با دانش محدود خودش به جای ۱۰۰ خط کد با ۵۰۰ خط کد اجراش کنه.

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

منتشر شده در

۸ فروردین

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

به نام خدا

یه چیزی که ما ادما همیشه بهش نیاز داریم رمزنگاری و رمزگشایی هست (چرا؟)‌ چون خیلی وقتا یه سری اطلاعات محرمانه ای داریم که نمیخوایم همه از اونا با خبر باشن شاید تو فامیلاتون از اقوام خوب ترک و لر و کرد داشته باشید که وقتی میخوان حرف بزنن توی یه جمعی و کسی نفهمه با زبان خودشون حرف میزنن.

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

منتشر شده در

۶ بهمن

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

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

ماتریس ها همیشه توی دوران دبیرستان و کنکور توی ریاضیات و هندسه تحلیلی همراه ما بودن و شاید ما یه جورایی حقشون رو ادا نکردیم چون ماتریس ها خیلی کاربرد دارن

سخت ترین چیزها توی ماتریس، ضرب کردن و همچنین پیدا کردن دترمینان ماتریس های بزرگتر از ۲ در ۲ بود.

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

منتشر شده در

۲۵ دی

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

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

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

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

منتشر شده در

۲۲ دی

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

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

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

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

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

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

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

منتشر شده در

۲۰ دی