مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

جلسه ششم آموزش ios : کار با Property List از 0 تا 100


امروز جلسه ­ای دیگر از آموزش برنامه نویسی iOS را آغاز می کنیم. در جلسات قبل، ما یک اپ ساده Table View برای نمایش لیست دستور پخت ها ساختیم. اگر به برنامه قبلی نگاه کنید، متوجه می شوید که تمام دستور العمل های ما در سورس کد درج شده اند. ما سعی کردیم سادگی برنامه را حفظ کنیم، با این حال، در برنامه های پیچیده ، آوردن لیست جدول درون سورس کد کار درستی نیست. در برنامه واقعی، ما موارد ایستا (برای مثال اطلاعات دستور پخت ها) را به صورت خارجی انتقال می دهیم و آنها را در یک فایل یا پایگاه داده یا جایی دیگر قرار می دهیم. در برنامه نویسی iOS یک نوع فایل با نام Property List وجود دارد. این نوع فایل معمولاً در سیستم عامل Mac و iOS یافت می شود و برای ذخیره سازی داده های ساختاری ساده (به عنوان مثال تنظیمات برنامه) استفاده می شود.

در این جلسه دوره آموزش برنامه نویسی iOS، ما قصد داریم تغییراتی در اپ ساده جدول ایجاد کنیم و آن را برای استفاده در Property List تغییر دهیم.

به طور خلاصه، دو مبحثی که در این جلسه پوشش خواهیم داد، عبارتند از:

  • تبدیل جدول داده از حالت آرایه استاتیک به Property List.
  • چگونگی خواندن Property List.

 

چرا داده­ های جدول را از داخل برنامه بیرون می آوریم؟

جدا کردن داده های استاتیک از داخل کد کار خوبی است. اما چرا؟ قرار دادن داده های جدول، داخل یک منبع خارجی چه مزیتی دارد؟ بگذارید این طور به این سؤال پاسخ دهیم. برای افزودن 50 دستور پخت به اپ ساده جدول، احتمالاً شما به داخل کد برگشته و تمام دستورهای جدید را در جدول مقداردهی خواهید کرد.

 // Initialize table data
    tableData = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich", @"Creme Brelee", @"White Chocolate Donut", @"Starbucks Coffee", @"Vegetable Curry", @"Instant Noodle with Egg", @"Noodle with BBQ Pork", @"Japanese Noodle with Pork", @"Green Tea", @"Thai Shrimp Cake", @"Angry Birds Cake", @"Ham and Cheese Panini", nil];
    
    // Initialize thumbnails
    thumbnails = [NSArray arrayWithObjects:@"egg_benedict.jpg", @"mushroom_risotto.jpg", @"full_breakfast.jpg", @"hamburger.jpg", @"ham_and_egg_sandwich.jpg", @"creme_brelee.jpg", @"white_chocolate_donut.jpg", @"starbucks_coffee.jpg", @"vegetable_curry.jpg", @"instant_noodle_with_egg.jpg", @"noodle_with_bbq_pork.jpg", @"japanese_noodle_with_pork.jpg", @"green_tea.jpg", @"thai_shrimp_cake.jpg", @"angry_birds_cake.jpg", @"ham_and_cheese_panini.jpg", nil];
    
    // Initialize Preparation Time
    prepTime = [NSArray arrayWithObjects:@"30 min", @"30 min", @"20 min", @"30 min", @"10 mi

این کار اشتباه نیست. اما نگاهی به کد بیاندازید! ویرایش آن راحت نیست و باید الزاماً ساختار زبان Objective-C را رعایت کنید. تغییر کد ممکن است به طور تصادفی خطاهای دیگری را ایجاد کند. این چیزی نیست که ما می خواهیم. ظاهراً جدا کردن داده ها و منطق برنامه نویسی (یعنی کد) می تواند، راه حل بهتری باشد. نگاه کنید! وقتی داده های جدول در فایلی مانند فایل زیر ذخیره شوند، بهتر به نظر نمی آید؟

شما ممکن است فردی برای وارد کردن داده های جدول (در اینجا، اطلاعات دستور پخت ها)، نداشته باشید. اطلاعات می تواند توسط سایرین حتی بدون داشتن تجربه برنامه نویسی iOS ارائه گردند. وقتی ما داده ها را در یک فایل خارجی قرار می دهیم، خواندن/ویرایش کردن و درک بیشتر آن برای ما ساده ­تر خواهد بود.

همان طور که در برنامه نویسی iOS پیشرفت می کنید، شما یاد خواهید گرفت که چگونه اطلاعات را در سمت سرور قرار دهید (یا چطور از Cloud فراخوانی کنید). تمام داده های اپ شما در صورت تقاضا از سرور واکشی می شوند. این کار یک مزیت بزرگی دارد. در حال حاضر، هر گونه تغییر داده نیاز به ساخت برنامه و ارسال آن  برای تأیید اپل دارد. با جدا کردن داده ها و قرار دادن آنها در Cloud، می توانید تغییرات موردنیاز را در داده ها اعمال نمایید، بدون این که نیازی به روز رسانی اپ خود داشته باشد..

در جلسه امروز آموزش  iOS ما قصد نداریم در مورد Cloud صحبت کنیم. بیایید به سراغ اصول پایه ای برنامه نویسی iOS برویم و ببینیم چگونه می توان همه دستور پخت ها را در یک Property List قرار دهیم.

Property List چیست؟

Property List یک راه مناسب برای ذخیره داده های ساختاری ساده است. معمولاً در فرمت XML ظاهر می شود. اگر قبلاً برخی از فایل های پیکربندی در Mac یا iPhone را ویرایش کرده باشید، ممکن است با این فایل ها با پسوند .plist برخورد کرده باشید. این فایل ها نمونه هایی از Property List هستند.

نمی توان از Property List برای ذخیره کردن همه انواع داده ها استفاده کرد. اقلام داده ها در Property List تعداد محدودی از انواع داده ها است که شامل: “array”، “dictionary”، “string” و غیره است. برای کسب اطلاعات بیشتر در خصوص انواع مورد پشتیبانی توسط Property List می توانید به مستند Property List مراجعه نمایید.

Property List کاربرد متداولی برای ذخیره تنظیمات اپلیکیشن در iOS دارد.  Property List  فقط برای ذخیره مقدار کمی از داده ها طراحی شده است.

 

آیا این روش بهترین راهکار برای ذخیره داده های جدول است؟

قطعاً نه. از Property List برای نشان دادن نحوه ذخیره اطلاعات جدول در یک فایل خارجی استفاده می کنیم. این فقط یک مثال است. همان طور که تجربه بیشتری کسب می کنید، روش های دیگری برای ذخیره داده ها خواهید آموخت.

تغییر داده های جدول به Property List

توضیحات فوق برای داشتن پیش زمینه ذهنی در مورد Property List کافی است. بیایید دست به کار شویم و داده ها را به Property List تغییر دهیم.

ابتدا، پروژه Simple Table project را در Xcode باز کنید. روی پوشه “SimpleTable”  کلیک راست کرده و  “New File…” را انتخاب کنید. گزینه “other” زیر تمپلت “iOS” را انتخاب کنید، Property List را انتخاب کرده و برای ادامه روی “Next” کلیک کنید.

 

 

در ادامه، “recipes” را به عنوان نام فایل استفاده کنید. پس از تأیید، Xcode ، فایل Property List را خواهد ساخت. به طور پیش فرض، Property List خالی است.

دو روش برای ویرایش Property List وجود دارد. می توانید در ناحیه ویرایش، کلیک راست کرده و گزینه “Add Row” را برای افزودن مقدار جدید، انتخاب کنید.

 

قصد داریم سه آرایه داده در Property List قرار دهیم. برای این منظور، سه ردیف با نوع “array” اضافه خواهیم کرد. نام آنها شامل RecipeName، Thumbnail و PrepTime است. کلید، به عنوان شناسه عمل می کند و بعداً از آن در کد برای انتخاب آرایه متناظر استفاده خواهیم کرد.

برای افزودن داده به آرایه، آن را بسط داده و روی آیکون "+" برای افزودن مورد جدید کلیک کنید. اگر متوجه نحوه انجام کار نشدید، می توانید مطابق شکل زیر مراحل را دنبال کنید.

روال کار را تا زمانی که همه مقادیر را برای آرایه اضافه کنید، تکرار نمایید.Property List شما باید شبیه شکل زیر باشد:

همان طور که قبلاً ذکر شد، Property List معمولاً در فرمت XML ذخیره می شود. برای مشاهده سورس کد Property List، کلیک راست کرده و “Open as Source Code” را انتخاب کنید.

سورس کد فایل “recipes.plist” شبیه شکل زیر خواهد بود:

 

بارگذاری Property List در Objective C

در ادامه، کدمان را تغییر خواهیم داد و دستور پخت را از Property List که قبلاً ایجاد کردیم، بارگذاری خواهیم کرد. خواندن محتوای Property List بسیار آسان است. iOS SDK در حال حاضر شامل برخی از توابع داخلی برای خواندن/نوشتن فایل است.

کد زیر را جایگزین کنید:

// Initialize table data
    tableData = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich", @"Creme Brelee", @"White Chocolate Donut", @"Starbucks Coffee", @"Vegetable Curry", @"Instant Noodle with Egg", @"Noodle with BBQ Pork", @"Japanese Noodle with Pork", @"Green Tea", @"Thai Shrimp Cake", @"Angry Birds Cake", @"Ham and Cheese Panini", nil];
    
    // Initialize thumbnails
    thumbnails = [NSArray arrayWithObjects:@"egg_benedict.jpg", @"mushroom_risotto.jpg", @"full_breakfast.jpg", @"hamburger.jpg", @"ham_and_egg_sandwich.jpg", @"creme_brelee.jpg", @"white_chocolate_donut.jpg", @"starbucks_coffee.jpg", @"vegetable_curry.jpg", @"instant_noodle_with_egg.jpg", @"noodle_with_bbq_pork.jpg", @"japanese_noodle_with_pork.jpg", @"green_tea.jpg", @"thai_shrimp_cake.jpg", @"angry_birds_cake.jpg", @"ham_and_cheese_panini.jpg", nil];
    
    // Initialize Preparation Time
    prepTime = [NSArray arrayWithObjects:@"30 min", @"30 min", @"20 min", @"30 min", @"10 min", @"1 hour", @"45 min", @"5 min", @"30 min", @"8 min", @"20 min", @"20 min", @"5 min", @"1.5 hour", @"4 hours", @"10 min", nil];

با:

// Find out the path of recipes.plist
    NSString *path = [[NSBundle mainBundle] pathForResource:@"recipes" ofType:@"plist"];    
 
    // Load the file content and read the data into arrays
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
    tableData = [dict objectForKey:@"RecipeName"];
    thumbnails = [dict objectForKey:@"Thumbnail"];
    prepTime = [dict objectForKey:@"PrepTime"];

پشت صحنه تغییر کد:

خط 2- قبل از خواندن فایل “recipes.plist”، ابتدا باید مسیر کامل منابع را بازیابی کنید.

خط 5- سه کلید (RecipeName, Thumbnail, PrepTime) در Property List تعریف شده است. در این مثال، هر کلید به یک آرایه خاص تخصیص داده شده است که مقدار آن است. در برنامه نویسی iOS، ما از اصطلاح dictionary برای اشاره به تجمیع جفت کلید-مقدار استفاده می کنیم. کلاس NSDictionary متودهای ضروری برای مدیریت dictionary را فراهم می کند. در اینجا، ما از متد “initWithContentsOfFile” کلاس NSDictionary برای خواندن جفت کلید-مقدار در فایل Property List استفاده می کنیم.

خط 6 تا 8- این خطوط، آرایه متناظر با کلیدی را که قبلاً تعریف کردیم،را بازیابی می کند.

وقتی تغییرات را تکمیل کردید، سعی کنید اپ را دوباره اجرا کنید. ظاهر اپ مثل قبل است. با این تفاوت که در این شرایط، دستور پخت ها از Property List بارگذاری می شوند.

در جلسه بعد آموزش  iOS برای شما چه چیزی خواهیم داشت؟

امیدواریم یک درس دیگر از برنامه­ نویسی  iOS را از طریق این آموزش فرا گرفته باشید. در حال حاضر شما باید درک بهتری از Property List و نحوه استفاده از آن برای ذخیره مقدار محدودی از داده­ ها را داشته باشید. در جلسه بعد، ما نگاهی به Storyboard و کنترل Navigation خواهیم داشت.

 

 

فصلِ: 3 , تعداد قسمت ها: 179 , سطح: صفر تا صد

این فصل در یک نگاه:

در این دوره آموزشی ، برنامه نویسی اندروید و ios را با استفاده از زامارین خواهیم آموخت. همچنین به صورت کاملا پروژه محور ، اپلیکیشن فروشگاهی مشابه دیجی کالا را پیاده سازی خواهیم کرد. در انته…
فصلِ: 5 , تعداد قسمت ها: 221 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

در این فصل:-نمایش notification به کاربر زمانی که اتفاقاتی از قبیل لایک کردن پست و ... میافتد(این مبحث مبحثی مهم بوده و ج…

  توضیحات کلی دوره: با سلام خوش اومدین به حرفه ای ترین دوره ی Swift ابتدای کار ممکن است سوالی برای شما پیش آید: -من نیازی به ساخت اپلیکیشن اجتماعی ندارم چرا باید این دوره را ببینم؟ ج…
فصلِ: 7 , تعداد قسمت ها: 159 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

اپل نویس حرفه ای شوید... با این پکیج کسب درآمد میلیونی کنید....   در این پکیج به نکات ریز و درشت زیادی پرداختیم که خیلی خیلی میتونه به شما کمک کنه که تبدیل به برنامه نویس حرفه ای شوید... …
فصلِ: 12 , تعداد قسمت ها: 126 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

فصل 16 فصل آخرمون هست و میایم توی این فصل یه سری مباحث کوچیکی که جامونده و کارهای نهایی برای انتشار برنامه توی مایکت های…

با سلام نکته:هیچ نیازی به mac و یا iphone نیست... نکته:هیچ نیازی به بلد بودن برنامه نویسی از قبل نیست... مباحثی که توی این دوره مرور میکنیم میتونه ما رو از سطح صفر برنامه نویسی ios به صد …
فصلِ: 6 , تعداد قسمت ها: 194 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل آپدیت های مربوط به دوره را قرار میدهیم…

با سلام و خسته نباشد خدمت کلیک سایتی های عزیز در ادامه با توضیحات مختصری درمورد دوره ی react native با ما همراه باشید: React Native چیست؟ قطعا یکی از آرزوهای برنامه نویسان این میباشد که ب…
فصلِ: 5 , تعداد قسمت ها: 51 , سطح: صفر تا صد

این فصل در یک نگاه:

اموزش پرداخت درون برنامه ای بازار در یونیتی-اموزش خرید سکه در بازی-اموزش خرید مصرفی و غیر مصرفی…

توضیحات کلی مجموعه: آموزش مقدماتی تا پیشرفته یونیتی(ساخت بازی توپ چرخنده-اموزش بازی دوبعدی-اموزش بازی سه بعدی اول شخص شوتر-اموزش بازی سه بعدی رالی (ماشین سواری))   سرفصلهای دوره: نصب ی…
فصلِ: 2 , تعداد قسمت ها: 68 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ساخت یک فروشگاه کوچک-آموزش کار با bottom navigation -آموزش کار با تب بار-آموزش کار با scrollview - آموزش کار با ان…

توضیحات کلی مجموعه: آموزش دوره فلاتر از پایه تا پیشرفته(این دوره به دوره متخصص فلاتر تغییر پیدا کرد) درسال های گذشته تعدا زیادی فریمورک معرفی شد که هرکدام تجربه خاص خودش رو داشت،اما فلاتر …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید