1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [سمینار] [در iOS: نوشتن برنامه مانند یک رئیس] 2 00:00:02,000 --> 00:00:04,000 [تامی MacWilliam] [دانشگاه هاروارد] 3 00:00:04,000 --> 00:00:08,000 [این CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> تمامی حقوق، همه، خوش آمدید به iOS: نوشتن برنامه مانند یک رئیس است. 5 00:00:12,000 --> 00:00:16,000 این سمینار در حال رفتن به تمرکز بر روی نوشتن برنامه برای آی فون 6 00:00:16,000 --> 00:00:19,000 و به نوبه خود به نوشتن برنامه های کاربردی برای iPad، و بنابراین ما اساسا در رفتن به راه رفتن را از طریق 7 00:00:19,000 --> 00:00:23,000 نمونه های مختلف زن و شوهر چگونه به ایجاد یک برنامه، یک بازی ساده مثل تیک تاک انگشت پا، 8 00:00:23,000 --> 00:00:26,000 و یا اگر شما بیشتر علاقه مند به ساخت یک برنامه شبیه به نوعی از خبر خوان 9 00:00:26,000 --> 00:00:30,000 و یا چیزی است که تعامل با اینترنت من در مورد آن نیز صحبت کنید. 10 00:00:30,000 --> 00:00:32,000 در اینجا مختصری دستور کار ما است. 11 00:00:32,000 --> 00:00:36,000 >> برنامه IOS در یک زبان به نام هدف C نوشته شده است، 12 00:00:36,000 --> 00:00:39,000 و به همین ترتیب این کمی شبیه به C اما نه واقعا در همه است، 13 00:00:39,000 --> 00:00:41,000 بنابراین ما خواهید بود صحبت کردن کمی در مورد خود زبان 14 00:00:41,000 --> 00:00:45,000 و پس از آن برای ساخت برنامه های آیفون با استفاده از این برنامه نرم افزاری به نام Xcode متعلق به، 15 00:00:45,000 --> 00:00:48,000 که اگر شما آن را دریافت نشده است احساس رایگان برای شروع به دانلود کن. 16 00:00:48,000 --> 00:00:50,000 چند گیگابایت است. 17 00:00:50,000 --> 00:00:54,000 باید رایگان در فروشگاه App، بنابراین شما نیاز به مک 18 00:00:54,000 --> 00:00:57,000 در حالت ایده آل در حال اجرا از آخرین نسخه از OS X. 19 00:00:57,000 --> 00:00:59,000 اگر شما نیست، مشکلی وجود ندارد. 20 00:00:59,000 --> 00:01:02,000 ما باید مکینتاش را در مرکز علم در دسترس برای استفاده شما 21 00:01:02,000 --> 00:01:05,000 با Xcode متعلق به نصب شده است، و بنابراین احساس رایگان برای استفاده از آن برای توسعه است. 22 00:01:05,000 --> 00:01:07,000 اگر شما می خواهید برای ایجاد یک برنامه مک ندارد، نگران نباشید. 23 00:01:07,000 --> 00:01:09,000 مقدار زیادی از منابع دانشگاه در آن وجود دارد. 24 00:01:09,000 --> 00:01:15,000 و بنابراین پس از آن ما در حال رفتن به پوشش 2 نمونه بزرگتر از برنامه های مختلف شما می توانید. 25 00:01:15,000 --> 00:01:19,000 هدف C از نظر فنی چیزی است که به نام مجموعه ای فوق العاده از C. 26 00:01:19,000 --> 00:01:24,000 این بدان معنی است که هر کد C-C کد معتبر هدف. 27 00:01:24,000 --> 00:01:29,000 این بدان معنی است که ما نوع از مجرای در برخی از ویژگی های اضافی را به C. ضبط 28 00:01:29,000 --> 00:01:33,000 برخی از این ویژگی ها شامل داشتن تا کنون نوشتن malloc دوباره، خدا را شکر، 29 00:01:33,000 --> 00:01:36,000 هیچ نیاز به نگرانی در مورد آن اشاره گر احمق و آزادی آنها و تمام چیزهای که 30 00:01:36,000 --> 00:01:40,000 شما در مورد C متنفر بودم، و نوع آن رفته-C در هدف. 31 00:01:40,000 --> 00:01:43,000 >> در حال حاضر، هدف-C نیز دارای یک کتابخانه استاندارد بسیار بزرگتر، 32 00:01:43,000 --> 00:01:47,000 بنابراین خیلی بیشتر از قابلیت وجود دارد که شما برای داخل هدف-C دریافت کنید. 33 00:01:47,000 --> 00:01:50,000 به یاد داشته باشید هنگامی که ما به نوشتن PHP ما متوجه شدیم که ما از رفت 34 00:01:50,000 --> 00:01:54,000 این کوچکترین زبان به کتابخانه بزرگ تمام این چیزها را دیوانه می توانید انجام دهید. 35 00:01:54,000 --> 00:01:56,000 همان چیزی که اتفاق می افتد در در iOS است. 36 00:01:56,000 --> 00:01:59,000 اشیاء برای چیزهایی مانند تقویم بودایی وجود دارد، و واقعا هر چیزی 37 00:01:59,000 --> 00:02:05,000 شما احتمالا می تواند احتمالا وجود دارد در حال حاضر در اجرای هدف-C فکر می کنم. 38 00:02:05,000 --> 00:02:08,000 هدف از هدف-C، استناد چیزی 39 00:02:08,000 --> 00:02:11,000 به نام برنامه نویسی شی گرا است. 40 00:02:11,000 --> 00:02:14,000 این نوع از یک مفهوم جدید است، اما ما در واقع عمدتا آموخته 41 00:02:14,000 --> 00:02:17,000 بسیاری از این مفاهیم در حال حاضر. 42 00:02:17,000 --> 00:02:19,000 ایده پشت برنامه نویسی شی گرا است که شما در حال رفتن به ساختار 43 00:02:19,000 --> 00:02:23,000 تعداد زیادی از کد خود را در سراسر این چیزها را به نام کلاس ها، 44 00:02:23,000 --> 00:02:26,000 و این کلاس ها واقعا جلال ساختمانها. 45 00:02:26,000 --> 00:02:30,000 داخل یک ساختار اساسا ما گفت: در اینجا یک چیز است، 46 00:02:30,000 --> 00:02:32,000 و این چیز می تواند داشته باشد. 47 00:02:32,000 --> 00:02:35,000 به عنوان مثال، یک گره در یک لیست پیوندی می تواند به چیزهای دیگر داشته باشند 48 00:02:35,000 --> 00:02:38,000 چون یک مقدار، یک اشاره گر به گره بعدی در فهرست، 49 00:02:38,000 --> 00:02:44,000 و با هم که اشاره گر و تشکیل شده است که ارزش این مثال یکی از ساختارها (struct). 50 00:02:44,000 --> 00:02:47,000 کلاس بسیار مشابه هستند به جز 51 00:02:47,000 --> 00:02:50,000 کلاس همچنین می توانید توابع را در داخل از آنها را داشته باشد. 52 00:02:50,000 --> 00:02:54,000 هنگامی که ما یک ساختار را اعلام کرد، ما فقط می تواند از نوع int N یا گره بعدی * می گویند. 53 00:02:54,000 --> 00:02:57,000 >> در حال حاضر با هدف-C ما در واقع می تواند توابع قرار داده است 54 00:02:57,000 --> 00:02:59,000 در داخل از آن چیزهایی است. 55 00:02:59,000 --> 00:03:03,000 یکی دیگر از چیزی است که کلاس می تواند انجام دهد این است که آنها می توانند داده ها را از کلاس دیگر به ارث می برند. 56 00:03:03,000 --> 00:03:07,000 به عنوان مثال، ما به دنبال در یک دسته از ساخته شده است در هدف، کلاس C است. 57 00:03:07,000 --> 00:03:11,000 یکی از آنها می تواند کلاس که نشان دهنده نمایش روی صفحه نمایش، 58 00:03:11,000 --> 00:03:14,000 و به همین ترتیب با گفتن من می خواهم به اجرای نمایش خود را من 59 00:03:14,000 --> 00:03:18,000 ما اساسا کسی که در بیش از اپل، احتمالا واقعا خوب مردم می گویند، 60 00:03:18,000 --> 00:03:21,000 نوشت: این کلاس برای من، و آن دسته چیزهایی مانند دکمه های نمایش 61 00:03:21,000 --> 00:03:25,000 یا ارائه روی صفحه نمایش، و ما واقعا دردناک خواهد بود 62 00:03:25,000 --> 00:03:28,000 برای پیاده سازی تمام است که عملکرد خودمان است، و بنابراین به سادگی با 63 00:03:28,000 --> 00:03:31,000 وارث داده های ما می توانید همه چیز را که شما در آن کلاس بود 64 00:03:31,000 --> 00:03:34,000 من هم داخل کلاس من می خواهم، و سپس من قصد دارم برای انجام برخی از چیزهای دیگر، 65 00:03:34,000 --> 00:03:37,000 یعنی یک برنامه را اجرا می کنند. 66 00:03:37,000 --> 00:03:40,000 این همان چیزی است که ارث کلمه به این معنی است. ما می خواهیم یک مثال عینی تر را ببینید. 67 00:03:40,000 --> 00:03:42,000 >> و در نهایت کلید با برنامه نویسی شی گرا است که 68 00:03:42,000 --> 00:03:45,000 آن به یگدیگر داده ها منجر می شود. 69 00:03:45,000 --> 00:03:48,000 در برخی از مجموعه مشکل ما ما می تواند از این بزرگ، متغیر های جهانی 70 00:03:48,000 --> 00:03:51,000 و GLOBALS در همه جا، و این که چگونه ما می خواهم پیگیری امور خارجه نگه دارید. 71 00:03:51,000 --> 00:03:55,000 با کلاس ما می توانیم شروع به کپسوله سازی اطلاعات در داخل یک شی. 72 00:03:55,000 --> 00:03:58,000 اگر ما دارای یک صفحه نمایش در برنامه ما، ما واقعا نیاز نیست به هر گونه اطلاعات از 73 00:03:58,000 --> 00:04:01,000 یکی دیگر از صفحه نمایش در داخل برنامه ما از آن، 74 00:04:01,000 --> 00:04:04,000 و به همین ترتیب با کپسوله سازی چیزها را در داخل کلاس این در واقع منجر 75 00:04:04,000 --> 00:04:08,000 برای طراحی کد خیلی بهتر است، و این ممکن است با برخی از ویژگی های اضافی 76 00:04:08,000 --> 00:04:11,000 هدف-C. 77 00:04:11,000 --> 00:04:15,000 Forewarning، نحو برای هدف-C موز است. 78 00:04:15,000 --> 00:04:19,000 مثل چیزی که دیده ام قبل از، 79 00:04:19,000 --> 00:04:22,000 پس از آن کمی از منحنی یادگیری گرفتن استفاده می شود است 80 00:04:22,000 --> 00:04:24,000 چی معنی است؟ 81 00:04:24,000 --> 00:04:27,000 اما هنگامی که شما در گذشته است که منحنی یادگیری اولیه این واقعا، واقعا صاف 82 00:04:27,000 --> 00:04:29,000 برای شروع به نوشتن برنامه های. 83 00:04:29,000 --> 00:04:33,000 >> برای تعریف یک کلاس، می گویند اینجا کلاس من است، در آن وجود دارد، 84 00:04:33,000 --> 00:04:35,000 و شاید در اینجا برخی از چیزهایی است که من قصد دارم به تعریف بعد، 85 00:04:35,000 --> 00:04:38,000 من قصد دارم برای گفتن از رابط @. 86 00:04:38,000 --> 00:04:41,000 من قصد دارم برای گفتن از رابط @. من قصد دارم به کلاس من یک نام است. 87 00:04:41,000 --> 00:04:43,000 و سپس بعد در جایی دیگر من قصد دارم برای گفتن @ پایان، 88 00:04:43,000 --> 00:04:46,000 و همه چیز را در میان رابط @ و پایان @ 89 00:04:46,000 --> 00:04:48,000 برای رفتن به کلاس من. 90 00:04:48,000 --> 00:04:51,000 است که رفتن به آنچه در درون ما از فایل های ساعت است. 91 00:04:51,000 --> 00:04:55,000 درست مانند C فایل ساعت اساسا گفت: در اینجا برخی از چیزهایی که وجود خواهد داشت. 92 00:04:55,000 --> 00:04:57,000 من نه لزوما به شما می گویم آنچه انجام می دهند در عین حال، 93 00:04:57,000 --> 00:04:59,000 اما کامپایلر نیاز به دانستن است که آنها وجود دارند. 94 00:04:59,000 --> 00:05:04,000 بعدها در داخل فایل های. متر ما به خاطر متر برای هدف-C 95 00:05:04,000 --> 00:05:08,000 جایی است که ما در واقع رفتن به تعریف این کلاس انجام است. 96 00:05:08,000 --> 00:05:11,000 بسیار شبیه به فایل های C، ما به پیاده سازی توابع است. 97 00:05:11,000 --> 00:05:15,000 داخل فایل متر ما در حال رفتن به می گویند در اینجا چیزی است که تمام توابع 98 00:05:15,000 --> 00:05:18,000 در داخل از کلاس چیزی است که همه آنها را انجام دهید. 99 00:05:18,000 --> 00:05:22,000 و در نهایت، در داخل یک ساختار در داخل می گویند کسانی که از آکولاد 100 00:05:22,000 --> 00:05:25,000 INT یا گره * بعدی، 101 00:05:25,000 --> 00:05:28,000 و در-C هدف ما قصد داریم با استفاده از کلمه کلیدی اموال @ 102 00:05:28,000 --> 00:05:31,000 و این همان چیزی است که رفتن به تعریف خواص، 103 00:05:31,000 --> 00:05:36,000 توابع غیر هستند که بخشی از کلاس های من. 104 00:05:36,000 --> 00:05:40,000 >> فراخوانی توابع در هدف-C است همچنین موز. 105 00:05:40,000 --> 00:05:43,000 توابع در C را در هنگامی که ما اعلام کرد ما گفت: چیزی مانند نوع int صنایع غذایی 106 00:05:43,000 --> 00:05:46,000 باز و پرانتز و سپس به آن یک لیست آرگومان. 107 00:05:46,000 --> 00:05:51,000 این همان چیزی است که اعلام روش ها و یا توابع به نظر می رسد مانند هدف-C است. 108 00:05:51,000 --> 00:05:54,000 اگر من می خواهم به اعلام یک تابع و یا روش 109 00:05:54,000 --> 00:05:58,000 جایی که من هستم گفت: روش واقعا فقط یک تابع است که یک عضو از یک کلاس، 110 00:05:58,000 --> 00:06:01,000 بنابراین نوع قابل تعویض است، اما نه واقعا، 111 00:06:01,000 --> 00:06:03,000 داخل از روش من من می خواهم برای ایجاد یک روش جدید است. 112 00:06:03,000 --> 00:06:06,000 رفتن به بازگشت به هیچ چیز، پس از آن از درجه اعتبار ساقط نوع است. 113 00:06:06,000 --> 00:06:08,000 این نوع برگشتی تابع من است. 114 00:06:08,000 --> 00:06:11,000 در حال حاضر ما parens در اینجا به دلیل من نمی دانم. 115 00:06:11,000 --> 00:06:14,000 بعد رفتن به نام تابع من است، 116 00:06:14,000 --> 00:06:17,000 و پس از آن در نهایت ما یک نقطه و ویرگول درست مثل ما در C. بود 117 00:06:17,000 --> 00:06:19,000 تازه چه خبر اینجا این مرد در اینجا است. 118 00:06:19,000 --> 00:06:22,000 این خط رابط بین کلماتی که نصف ان در سطر بعد واقع شده است که در واقع لازم باشد، و آنچه در این می گوید که 119 00:06:22,000 --> 00:06:26,000 این روش در اینجا باید بر روی یک نمونه از یک کلاس نامیده می شود. 120 00:06:26,000 --> 00:06:29,000 >> پس از اعلام ساختمانها احتمالا ما گفت چیزی شبیه به 121 00:06:29,000 --> 00:06:32,000 ساختار گره N، که در واقع ایجاد 122 00:06:32,000 --> 00:06:35,000 یا نمونه یکی از آن ساختمانها به طوری که من در واقع می تواند شروع به کار 123 00:06:35,000 --> 00:06:38,000 با آنچه که در داخل آن، به طوری که این فاصله بدان معنی است که ما باید به 124 00:06:38,000 --> 00:06:41,000 نمونه کلاس درست مثل ما نمونه که ساختار 125 00:06:41,000 --> 00:06:43,000 قبل از ما می توانید این روش را بر روی آن تماس بگیرید. 126 00:06:43,000 --> 00:06:46,000 اگر من می خواهم برای شروع به اضافه کردن استدلال به روش من 127 00:06:46,000 --> 00:06:48,000 موز و حتی بیشتر می شود. 128 00:06:48,000 --> 00:06:50,000 در اینجا نام روش من است. 129 00:06:50,000 --> 00:06:53,000 پس از آن من به روده بزرگ، و بعد از این روده بزرگ آن را می گوید در اینجا می آید برخی از استدلال است. 130 00:06:53,000 --> 00:06:56,000 این متد یک آرگومان است. 131 00:06:56,000 --> 00:06:59,000 نوع استدلال خود را بین المللی، و به نام که استدلال 132 00:06:59,000 --> 00:07:03,000 یا متغیر است که من قصد دارم برای شروع با استفاده از داخل به روش من به نام. 133 00:07:03,000 --> 00:07:05,000 باز هم، این روش است. طول می کشد تا یک استدلال. 134 00:07:05,000 --> 00:07:10,000 >> اگر شما می خواهید شروع به اضافه کردن استدلال بیش از آن می شود موز 135 00:07:10,000 --> 00:07:13,000 که ما در این روده بزرگ که می گوید در اینجا می آید من از استدلال است. 136 00:07:13,000 --> 00:07:15,000 این آرگومان اول، یک عدد صحیح است. 137 00:07:15,000 --> 00:07:17,000 در حال حاضر، این آرگومان دوم جالب است. 138 00:07:17,000 --> 00:07:20,000 متغیر است که من قصد دارم با استفاده از داخل تابع من 139 00:07:20,000 --> 00:07:23,000 F نامیده می شود، به طوری که در داخل تابع من من می گویند 140 00:07:23,000 --> 00:07:25,000 F + = 1 و یا چیزی. 141 00:07:25,000 --> 00:07:30,000 این چیز در اینجا است که اساسا یک کلید برای آن آرگومان و یا پارامتر است. 142 00:07:30,000 --> 00:07:34,000 درست مثل ما تا به حال جفت ارزش کلیدی و چیزی مانند JSON یا آرایه های انجمنی 143 00:07:34,000 --> 00:07:37,000 هدف-C ساخته شده است که تصمیم به گفتن نیست، درست است، به طوری که آن را واقعا روشن 144 00:07:37,000 --> 00:07:39,000 هنگامی که شما به یک روش آنچه را که همه این پارامترها هستند 145 00:07:39,000 --> 00:07:41,000 من در واقع به نام همه آنها را. 146 00:07:41,000 --> 00:07:45,000 هنگامی که شما به یک روش، شما در واقع می خواهید andFloat می گویند، 147 00:07:45,000 --> 00:07:47,000 و سپس شما آن شوید. عبور 148 00:07:47,000 --> 00:07:50,000 >> جالب توجه است، یکی از این نام نیست، اما همه از پارامترهای دیگر هستند، 149 00:07:50,000 --> 00:07:53,000 بنابراین اگر ما تا به حال استدلال 3 می تواند andFloat می گویند 150 00:07:53,000 --> 00:07:56,000 و یکی دیگر از شناور و غیره. 151 00:07:56,000 --> 00:08:01,000 هنگامی که من به این روش آن را البته از موز است. 152 00:08:01,000 --> 00:08:04,000 بنابراین اگر من یک شیء، و من تعریف یک روش به نام صنایع غذایی، 153 00:08:04,000 --> 00:08:09,000 و من می خواهم به آن تماس بگیرید، به جای گفتن صنایع غذایی باز / parens نزدیک 154 00:08:09,000 --> 00:08:11,000 من قصد دارم برای باز کردن براکت. 155 00:08:11,000 --> 00:08:13,000 در اینجا نام از روش من است. 156 00:08:13,000 --> 00:08:17,000 من قصد دارم برای بستن براکت، و این است که جسم من خواهان آن را در. 157 00:08:17,000 --> 00:08:20,000 به یاد داشته باشید، همه از این روش در داخل کلاس وجود دارد 158 00:08:20,000 --> 00:08:23,000 چرا که کلاس ها می تواند روش های تعریف شده در داخل از آنها را داشته باشد. 159 00:08:23,000 --> 00:08:26,000 >> در اینجا من خودسرانه ایجاد یک شی برخی از کلاس، 160 00:08:26,000 --> 00:08:28,000 و این نحو برای انجام این کار است. 161 00:08:28,000 --> 00:08:31,000 2 گام برای رسیدن به ایجاد یک شی وجود دارد. 162 00:08:31,000 --> 00:08:34,000 اولین قدم این است که می گویند من می خواهم به تخصیص فضا است. 163 00:08:34,000 --> 00:08:37,000 این معادل malloc است. ما لازم نیست برای گفتن malloc دیگر. 164 00:08:37,000 --> 00:08:42,000 ما متر کاهش یافته است، ساخته شده آن alloc، و ج. متر جایگزین شده است. 165 00:08:42,000 --> 00:08:47,000 پس از ما چیزی alloc سپس ما نیاز به آن را مقداردهی اولیه. 166 00:08:47,000 --> 00:08:49,000 اساسا هنگامی که اشیاء را ایجاد می کنید شما ممکن است بخواهید به برخی از منطق 167 00:08:49,000 --> 00:08:53,000 اجرا است که زمانی که آنها در حال ایجاد است، بنابراین شما می توانید در برخی از مقادیر پیش فرض عبور 168 00:08:53,000 --> 00:08:57,000 یا چیزی شبیه به آن، و بنابراین این روش init انجام این همان چیزی است که در واقع ایجاد شیء است. 169 00:08:57,000 --> 00:08:59,000 ما برای اولین بار در فضا، درست مثل ما در C اختصاص، 170 00:08:59,000 --> 00:09:04,000 و سپس ما آن را مقداردهی اولیه، که ممکن است یا ممکن است بسیاری را انجام ندهید. 171 00:09:04,000 --> 00:09:07,000 آنگاه ما در حال بازگشت به این چیز به O شی. 172 00:09:07,000 --> 00:09:09,000 یک ستاره وجود دارد در اینجا به دلیل این است که از لحاظ فنی یک اشاره گر، 173 00:09:09,000 --> 00:09:12,000 اما نگران نباشید، اشاره گرها هستند که بزرگ معامله در C هدف دیگر نیست. 174 00:09:12,000 --> 00:09:15,000 >> حالا ما نمونه این کلاس به نام NSObject 175 00:09:15,000 --> 00:09:19,000 و این است که تنها یک کلاس به صورت تصادفی که اپل. 176 00:09:19,000 --> 00:09:22,000 ما نمونه، و در حال حاضر من یک نمونه از این کلاس 177 00:09:22,000 --> 00:09:25,000 در این O شی، به طوری که بدان معنی است که اگر من تعریف 178 00:09:25,000 --> 00:09:29,000 این روش می تواند آنها را مانند تماس بگیرید. 179 00:09:29,000 --> 00:09:31,000 به طور مشابه، اگر من می خواستم به تماس با استفاده از روش یک آرگومان، 180 00:09:31,000 --> 00:09:34,000 بنابراین این روش نوار، که طول می کشد یک استدلال، 181 00:09:34,000 --> 00:09:38,000 و در اینجا باز است: روش qux، بنابراین این 2 استدلال طول می کشد. 182 00:09:38,000 --> 00:09:44,000 این است که فراخوانی یک تابع در این O شی. 183 00:09:44,000 --> 00:09:46,000 را حس؟ 184 00:09:46,000 --> 00:09:50,000 نحو باید احساس، اما شما را به نوعی به آن استفاده می شود. 185 00:09:50,000 --> 00:09:54,000 >> خوب، اجازه دهید بحث در مورد چند چیز است که به هدف-C ساخته شده است 186 00:09:54,000 --> 00:09:56,000 که به C. لزوما ساخته شده است 187 00:09:56,000 --> 00:09:59,000 در C ما به نوعی تا به حال برای مقابله با رشته به عنوان این آرایه شخصیت احمق، 188 00:09:59,000 --> 00:10:01,000 و آن را واقعا آزار دهنده است. 189 00:10:01,000 --> 00:10:04,000 هدف-C است که همه برای ما ساخته شده است، و آن را در ساخته شده است 190 00:10:04,000 --> 00:10:06,000 با استفاده از این کلاس به نام NSString. 191 00:10:06,000 --> 00:10:10,000 وقتی که من می خواهم برای ایجاد یک NSString ما دارند نحو محرمانه تر است. 192 00:10:10,000 --> 00:10:15,000 و نه از گفت: "cs50" ما می گویند: "cs50" 193 00:10:15,000 --> 00:10:17,000 و این است که فقط نحو برای اعلام رشته ها در C هدف است. 194 00:10:17,000 --> 00:10:21,000 این بسیار آسان است برای فراموش کردن است، بنابراین انجام نمی. 195 00:10:21,000 --> 00:10:24,000 در حال حاضر، یک بار من که این کار، این رشته است، اما متوجه 196 00:10:24,000 --> 00:10:26,000 واقعا فقط یک شی است. 197 00:10:26,000 --> 00:10:30,000 من گفتم NSString، که به معنی من نمونه کلاس 198 00:10:30,000 --> 00:10:32,000 نام NSString، که شخص دیگری برای من نوشت، 199 00:10:32,000 --> 00:10:35,000 و آنها بسیار خوب در مورد آن است، و بنابراین در حال حاضر 200 00:10:35,000 --> 00:10:37,000 من می توانم شروع به فراخوانی روش بر روی آن است. 201 00:10:37,000 --> 00:10:40,000 اگر من اسمش را وارد نمایید روش شی این 202 00:10:40,000 --> 00:10:43,000 آن اتفاق را به من بازگردان طول رشته. 203 00:10:43,000 --> 00:10:45,000 این است که درست مثل strlen در C. 204 00:10:45,000 --> 00:10:47,000 این 4 بازگشت. 205 00:10:47,000 --> 00:10:51,000 >> به طور مشابه، یکی دیگر از روش من ممکن است بخواهید در مورد مراقبت از این characterAtIndex است. 206 00:10:51,000 --> 00:10:54,000 این روش که می گوید در رشته این است 207 00:10:54,000 --> 00:10:57,000 من می خواهم به شما برای به دست آوردن شخصیت 0، 208 00:10:57,000 --> 00:10:59,000 و بنابراین این را به من C شخصیت، 209 00:10:59,000 --> 00:11:02,000 و یک دسته کامل تر از این روش است که شما واقعا به راحتی می توانید از Google وجود دارد. 210 00:11:02,000 --> 00:11:07,000 مستندات اپل بزرگ است، و ما می خواهیم یک نگاه که در یک بیت را. 211 00:11:07,000 --> 00:11:09,000 کسانی که رشته هستند. 212 00:11:09,000 --> 00:11:11,000 ما نیز آرایه های اندازه متغیر ساخته شده است شوید. 213 00:11:11,000 --> 00:11:13,000 به یاد داشته باشید در C هنگامی که ما یک آرایه را اعلام کرد 214 00:11:13,000 --> 00:11:16,000 ما تا به حال به شما می گویند که 5 عنصر، پایان داستان است. 215 00:11:16,000 --> 00:11:18,000 هنگامی که ما به جاوا اسکریپت و PHP رو ما می توانیم شروع به 216 00:11:18,000 --> 00:11:20,000 انجام کارهایی مانند اضافه کردن عناصر یا عناصر در حال حرکت است. 217 00:11:20,000 --> 00:11:22,000 ما می توانیم در هدف-C انجام دهد. 218 00:11:22,000 --> 00:11:26,000 به جای ایجاد یک آرایه در C طبیعی 219 00:11:26,000 --> 00:11:30,000 ما دوباره کلاس دیگری به نام NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 نیز وجود دارد NSArray، 221 00:11:33,000 --> 00:11:35,000 و این است که اساسا در محفظهای قرار دادن برخی از آرایه. 222 00:11:35,000 --> 00:11:38,000 این ماده می گوید اولین چیزی که من می خواهم به انجام این کار این است که من می خواهم به اختصاص 223 00:11:38,000 --> 00:11:41,000 فضا برای یک آرایه جدید است، و بعد از من آن را تخصیص 224 00:11:41,000 --> 00:11:43,000 من پس از آن باید آن را مقداردهی اولیه. 225 00:11:43,000 --> 00:11:45,000 باز هم، فقط خواستار این 2 روش. 226 00:11:45,000 --> 00:11:48,000 در حال حاضر این بدان معنی است که در داخل این جسم است 227 00:11:48,000 --> 00:11:50,000 من یک آرایه خالی نشسته وجود دارد. 228 00:11:50,000 --> 00:11:54,000 اگر من می خواهم برای اضافه کردن چیزی به این آرایه، می توانید از روش addObject تماس بگیرید. 229 00:11:54,000 --> 00:11:59,000 من می خواهم برای اضافه کردن یک شی به آرایه، و من می خواهم برای اضافه کردن رشته CS50. 230 00:11:59,000 --> 00:12:02,000 اگر من می خواستم در مقابل حذف است که می توانم بگویم من می خواهم به 231 00:12:02,000 --> 00:12:09,000 هدف در وهله اول در آرایه را حذف و یا جسم. 232 00:12:09,000 --> 00:12:11,000 >> را حس؟ 233 00:12:11,000 --> 00:12:14,000 خوب، شما نوع به این چیز براکت استفاده می شود. 234 00:12:14,000 --> 00:12:18,000 به هر حال، در داخل بسیاری از کتابخانه های اپل شما در این NS ها را ببینید. 235 00:12:18,000 --> 00:12:21,000 NS در واقع برای گام بعدی، که یکی از اولین شرکت استیو جابز بود می ایستد، 236 00:12:21,000 --> 00:12:24,000 و در آنجا بود که او واقعا شروع به نوشتن تعداد زیادی از کد 237 00:12:24,000 --> 00:12:27,000 به عنوان نوع پایه ای برای مک OS X و تمام چیزهای دیگر، 238 00:12:27,000 --> 00:12:32,000 و بنابراین این NS نوع از این میراث خوب فریاد را به یکی از شرکت های قبلی 239 00:12:32,000 --> 00:12:34,000 بازگشت هنگامی که اپل برای اولین بار شروع شد. 240 00:12:34,000 --> 00:12:36,000 این در همه جا. 241 00:12:36,000 --> 00:12:41,000 اجازه دهید نگاهی جامع در هدف-C به عنوان مثال. 242 00:12:41,000 --> 00:12:44,000 در اینجا من در داخل Xcode متعلق هستم. 243 00:12:44,000 --> 00:12:47,000 تا به اینجا برسم، من برای اولین بار به Xcode متعلق به از فروشگاه برنامه های دانلود شده، 244 00:12:47,000 --> 00:12:50,000 آن را گشود، و سپس من رفتم تا به فایل، 245 00:12:50,000 --> 00:12:54,000 در اینجا به پروژه جدید، و پس از آن. 246 00:12:54,000 --> 00:12:57,000 پس از من که من همه این گزینه ها از آنچه که من می خواهم برای ایجاد، 247 00:12:57,000 --> 00:12:59,000 و بنابراین ما باید یک نگاهی به این گزینه بعد را، 248 00:12:59,000 --> 00:13:03,000 اما فقط برای این مثال، از آنجا که ما در واقع رفتن به برنامه، 249 00:13:03,000 --> 00:13:06,000 من آمد، و به من گفت: ابزار خط فرمان، 250 00:13:06,000 --> 00:13:09,000 و این یک برنامه است که من می توانم در خط فرمان اجرا کنید 251 00:13:09,000 --> 00:13:12,000 درست مثل ما شده ایم در حال اجرا از C. 252 00:13:12,000 --> 00:13:16,000 این که چگونه من این پروژه است، و بنابراین در حال حاضر من اینجا هستم، 253 00:13:16,000 --> 00:13:20,000 بنابراین در نگاه اول این فایل، اجازه بدهید و این باید کاملا آشنا است. 254 00:13:20,000 --> 00:13:24,000 من نام و نام خانوادگی نوع int است. argc دوست من، دیگر من دوستان و argv وجود دارد. 255 00:13:24,000 --> 00:13:30,000 و بنابراین، ما می توانید ببینید که این نقطه ورود برای اولین بار هدف-C نرم افزار من است. 256 00:13:30,000 --> 00:13:32,000 در اینجا ما می توانیم این کار را در حال حاضر را نادیده گرفت. 257 00:13:32,000 --> 00:13:35,000 این است که اساسا برخی از مسائل مدیریت حافظه است که شما واقعا نمی 258 00:13:35,000 --> 00:13:37,000 همیشه باید به نگرانی در مورد. 259 00:13:37,000 --> 00:13:39,000 >> نگاه کنیم در این بلوک اول در اینجا. 260 00:13:39,000 --> 00:13:46,000 این خط اول، اگر من می گویند دانشجویی * آلیس = [[alloc دانشجویی] init انجام] آنچه که انجام؟ 261 00:13:46,000 --> 00:13:50,000 این دانش آموز اولین بار در اینجا، این است که احتمالا یک کلاس است. 262 00:13:50,000 --> 00:13:54,000 این یک کلاس است که اپل نوشت نیست، بلکه آن را در یک کلاس که من نوشتم. 263 00:13:54,000 --> 00:13:57,000 اولین چیزی که من می خواهم به انجام این کار این است که من می خواهم برای اختصاص فضا برای یک دانش آموز جدید، 264 00:13:57,000 --> 00:14:00,000 و پس از آن من می خواهم به آن مقداردهی اولیه، پس از این به من می دهد 265 00:14:00,000 --> 00:14:05,000 این شیء دانشجویی جدید، و من ذخیره سازی این کار را در یک متغیر به نام آلیس است. 266 00:14:05,000 --> 00:14:07,000 جایی که کلاس آمده بود؟ 267 00:14:07,000 --> 00:14:12,000 خوب، در اینجا در سمت چپ این همه از چند فایل مختلف را در داخل پروژه من. 268 00:14:12,000 --> 00:14:16,000 ما در اینجا می توانید ببینید من یک Student.h و Student.m. 269 00:14:16,000 --> 00:14:20,000 فایل در ساعت، به یاد داشته باشید، جایی است که تمام چیزهایی که من اعلام می کنم 270 00:14:20,000 --> 00:14:22,000 که در داخل کلاس وجود داشته باشد. 271 00:14:22,000 --> 00:14:25,000 >> بیایید نگاهی به آن. 272 00:14:25,000 --> 00:14:29,000 همه حق است، در اینجا ما باید این رابط @، و این می گوید که در اینجا می آید 273 00:14:29,000 --> 00:14:33,000 اعلامیه ها هر آنچه را که در کلاس من وجود داشته باشد. 274 00:14:33,000 --> 00:14:36,000 پس من باید یک روده بزرگ است. پس من باید این چیز NSObject است. 275 00:14:36,000 --> 00:14:40,000 این روده بزرگ دلالت دارد که کمی ارث ما در مورد یک کمی زودتر. 276 00:14:40,000 --> 00:14:43,000 این ماده می گوید همه چیز NSObject می تواند انجام دهد 277 00:14:43,000 --> 00:14:46,000 که در آن NSObject این کلاس نوشته شده توسط کسی دیگر است، 278 00:14:46,000 --> 00:14:50,000 همه چیز این NSObject می توانید انجام دهید من می خواهم که قادر به انجام این کار. 279 00:14:50,000 --> 00:14:54,000 گفت: NSObject که بدان معنی است که من اساسا 280 00:14:54,000 --> 00:14:58,000 به ارث برده همه از قابلیت های یکی دیگر از کلاس. 281 00:14:58,000 --> 00:15:02,000 که واقعا به من داد دسته کامل از روش های مختلف و خواص است که من می توانم با استفاده از. 282 00:15:02,000 --> 00:15:05,000 را در اینجا من 2 خواص. 283 00:15:05,000 --> 00:15:08,000 این بدان معناست که دانش آموزان من، اگر این ساختار، این خواهد بود 2 چیز 284 00:15:08,000 --> 00:15:11,000 در داخل ساختار من، پس هر دانش آموز یک نام 285 00:15:11,000 --> 00:15:14,000 که یک رشته است، و یک دانشجو نیز دارای یک کلاس، 286 00:15:14,000 --> 00:15:17,000 که از نوع int است. 287 00:15:17,000 --> 00:15:23,000 >> در نهایت، پایین در اینجا من قصد دارم برای ایجاد یک روش برای دانشجویان من است. 288 00:15:23,000 --> 00:15:26,000 من روش به نام من initWithName، و آن طول می کشد یک آرگومان، 289 00:15:26,000 --> 00:15:31,000 و این استدلال یک رشته است، و من آن را به نام نام. 290 00:15:31,000 --> 00:15:35,000 در حال حاضر نگاه کنید که چگونه ما در واقع پیاده سازی این کلاس اجازه دهید. 291 00:15:35,000 --> 00:15:38,000 در اینجا، در حال حاضر من در داخل فایل متر هستم. 292 00:15:38,000 --> 00:15:40,000 متر برای پیاده سازی، من حدس می زنم. 293 00:15:40,000 --> 00:15:44,000 من اجرای من، پایان من، و اینجا جایی است که من در واقع تعریف 294 00:15:44,000 --> 00:15:47,000 چه initWithName هم اینکار را در مورد شما نمی کنند. 295 00:15:47,000 --> 00:15:50,000 من initWithName، نام پارامتر من، و سپس این 296 00:15:50,000 --> 00:15:53,000 جایی است که من در واقع ایجاد یک دانشجو، 297 00:15:53,000 --> 00:15:56,000 و به همین ترتیب این کمی مرموز است، اما این نوع از boilerplate 298 00:15:56,000 --> 00:15:58,000 که شما می خواهید را در سازنده شما. 299 00:15:58,000 --> 00:16:02,000 این تابع مقدار دهی اولیه در اینجا، initWithName، نوع سازنده است. 300 00:16:02,000 --> 00:16:05,000 شما اساسا ساخت یک شی دانشجوی جدید 301 00:16:05,000 --> 00:16:07,000 و شاید ارسال برخی از داده ها را در داخل آن است. 302 00:16:07,000 --> 00:16:11,000 اولین چیزی که من می خواهم به انجام این کار این است که من می خواهم به تماس init انجام شده بر روی این چیز فوق العاده است. 303 00:16:11,000 --> 00:16:15,000 >> به یاد داشته باشید که زمانی که من در اینجا در فایل ساعت گفت: 304 00:16:15,000 --> 00:16:21,000 که همه چیز NSObject یک دانش آموز است. 305 00:16:21,000 --> 00:16:24,000 این بدان معناست که زمانی که من ایجاد یک دانشجوی آنچه که من نیاز به انجام است 306 00:16:24,000 --> 00:16:28,000 مطمئن شوید که NSObject که من وارث تمام آن داده ها از 307 00:16:28,000 --> 00:16:32,000 مقداردهی اولیه به درستی. 308 00:16:32,000 --> 00:16:36,000 چیزی که من نیاز به گفتن است که این فوق العاده است که در واقع رفتن به مراجعه به کلاس پدر و مادر 309 00:16:36,000 --> 00:16:39,000 که من از وارث، بنابراین من می خواهم تا مطمئن شوید که من مقداردهی اولیه 310 00:16:39,000 --> 00:16:43,000 همه چیز را که من بسته به قبل از من شروع به تلاش برای استفاده از آن است. 311 00:16:43,000 --> 00:16:46,000 سپس در صورتی که به درستی مقداردهی اولیه این است که درست مثل گفت: اگر malloc 312 00:16:46,000 --> 00:16:50,000 هیچ تهی نمی گرداند و سپس من می توانم شروع به تعیین برخی از خواص است. 313 00:16:50,000 --> 00:16:54,000 >> در جاوا اسکریپت و پی اچ پی ما این کلمه کلیدی به نام این، 314 00:16:54,000 --> 00:16:58,000 و این به عنوان مثال در حال حاضر از یک کلاس نامیده می شود. 315 00:16:58,000 --> 00:17:00,000 -C در هدف ما این خود تماس بگیرید. 316 00:17:00,000 --> 00:17:04,000 وقتی که من می گویم self.name، که بدان معنی است که جسم 317 00:17:04,000 --> 00:17:07,000 من فقط وقتی که من گفتم alloc دانشجویی init انجام: 318 00:17:07,000 --> 00:17:09,000 که به من داد یک شی. 319 00:17:09,000 --> 00:17:12,000 این بدان معناست که من می خواهم به مجموعه ای از نام آن شیء 320 00:17:12,000 --> 00:17:15,000 به هر آنچه که من فقط گذشت شوید. 321 00:17:15,000 --> 00:17:18,000 درست مانند C، اعضای ما با این نقطه دسترسی، 322 00:17:18,000 --> 00:17:21,000 بنابراین self.name می گوید: نام شی دانشجویی 323 00:17:21,000 --> 00:17:24,000 در حال حاضر برای رفتن به هر آنچه که شما فقط گذشت شوید. 324 00:17:24,000 --> 00:17:28,000 و به این ترتیب در نهایت، من می توانم از آن، بنابراین من در واقع به عقب بر گردیم به بازگشت. 325 00:17:28,000 --> 00:17:30,000 >> پرسش و پاسخ؟ 326 00:17:30,000 --> 00:17:34,000 خوب، پس این خود فوق العاده init انجام شده است، 327 00:17:34,000 --> 00:17:37,000 اگر شما را کاملا درک مسائل ارث نگران نباش. 328 00:17:37,000 --> 00:17:40,000 فقط می دانم که اگر شما همیشه می خواهید خود را بسازید روش init انجام 329 00:17:40,000 --> 00:17:42,000 انجام این کار، و شما خوب به آن بروید. 330 00:17:42,000 --> 00:17:44,000 آره. >> [دانشجو] اگر میانگین خود می کند؟ 331 00:17:44,000 --> 00:17:49,000 این به این معنی که هنگامی که ما malloc چیزی است که ما همیشه بررسی می شود اگر آن را برابر با تهی، 332 00:17:49,000 --> 00:17:51,000 و اگر آن تهی بود، پس از آن ما خارج شده است. 333 00:17:51,000 --> 00:17:55,000 این همان چیزی است، به دلیل اگر این تهی بازده، سپس ما احتمالا به گسل SEG 334 00:17:55,000 --> 00:17:57,000 اگر ما شروع به تلاش برای دستکاری. 335 00:17:57,000 --> 00:18:01,000 که در این کلاس دانش آموزان ما است. 336 00:18:01,000 --> 00:18:03,000 این بدان معناست که ما می توانیم دانش آموزان خود را در یکی از دو روش مقداردهی اولیه. 337 00:18:03,000 --> 00:18:08,000 اگر من می گویم alloc دانشجویی init انجام من که با استفاده از روش نیست که من فقط نوشتم، 338 00:18:08,000 --> 00:18:11,000 و به جای آن به سادگی می توانید alice.name می گویند، 339 00:18:11,000 --> 00:18:14,000 و در حال حاضر من قصد دارم مجموعه ای که نام ملک. 340 00:18:14,000 --> 00:18:17,000 >> به طور مشابه، اگر من می خواهم به استفاده از این روش initWithName 341 00:18:17,000 --> 00:18:20,000 من به سادگی می توانید alloc، می گویند و پس از آن به جای گفت init انجام 342 00:18:20,000 --> 00:18:24,000 من قصد دارم با این روش که من فقط ایجاد، و من قصد دارم در باب عبور. 343 00:18:24,000 --> 00:18:30,000 در این نقطه، این شی باب نام برابر به باب است. 344 00:18:30,000 --> 00:18:35,000 خوب، را در اینجا من با استفاده از این NSMutableArray که ما در قبل از آن نگاه کرد. 345 00:18:35,000 --> 00:18:38,000 من اختصاص space.Then من مقدار دهی اولیه آرایه جدید. 346 00:18:38,000 --> 00:18:40,000 من قصد دارم به اضافه کردن 2 چیز به آن است. 347 00:18:40,000 --> 00:18:43,000 این آرایه در حال حاضر دارای اشیاء دانش آموز است. 348 00:18:43,000 --> 00:18:46,000 توجه داشته باشید که هیچ جا من می گویند این است که مجموعه ای از دانش آموزان. 349 00:18:46,000 --> 00:18:48,000 من گفت: آن را در یک آرایه، دوره. 350 00:18:48,000 --> 00:18:50,000 پس من می توانم قرار داده است که هر چه در داخل آن است که من می خواهم. 351 00:18:50,000 --> 00:18:52,000 در اینجا من 2 اشیاء می باشد. 352 00:18:52,000 --> 00:18:56,000 >> در نهایت، من شی دیگری در اینجا، این TF. 353 00:18:56,000 --> 00:18:59,000 در اینجا در TF.h اساسا همان چیزی. 354 00:18:59,000 --> 00:19:01,000 من وارث از NSObject، و توسط راه، 355 00:19:01,000 --> 00:19:03,000 هنگامی که کلاس را ایجاد می کنید این است که همه را برای شما انجام می شود، 356 00:19:03,000 --> 00:19:06,000 این نوع از boilerplate رابط. 357 00:19:06,000 --> 00:19:08,000 این است اموال دانش آموزان است. 358 00:19:08,000 --> 00:19:15,000 من دو روش در اینجا است که واقعا نمی توانم در یک مقدار زیادی، 359 00:19:15,000 --> 00:19:18,000 و این بدان معناست که پس از ایجاد این شی TF 360 00:19:18,000 --> 00:19:23,000 من می توانم این کلاس روش بر روی آن مانند این است تماس بگیرید. 361 00:19:23,000 --> 00:19:26,000 هر گونه سوال در مورد C نحو هدف قبل از ما شروع به حرکت به برخی بیشتر 362 00:19:26,000 --> 00:19:30,000 مسائل توسعه برنامه های جالب؟ 363 00:19:30,000 --> 00:19:34,000 >> خوب، پس در واقع برنامه آیفون به شما اجازه می دهد تا. 364 00:19:34,000 --> 00:19:39,000 کلاس های هسته ای است که شما با استفاده از در داخل برنامه های آی فون خود را به نام کنترل مشخصات، 365 00:19:39,000 --> 00:19:42,000 و یک کنترل نمایش اساسا نشان دهنده یک صفحه نمایش تک 366 00:19:42,000 --> 00:19:46,000 در داخل برنامه شما، بنابراین اگر من در برنامه موسیقی هستم، به عنوان مثال، 367 00:19:46,000 --> 00:19:50,000 یک دیدگاه کنترل کننده می تواند این دیدگاه است که در آن به نظر من تمام آهنگ بر روی آیفون من را نمایندگی کند. 368 00:19:50,000 --> 00:19:53,000 یکی دیگر از کنترل مشخصات می تواند هنگامی که یک آهنگ کلیک کنید و شروع به نواختن آن 369 00:19:53,000 --> 00:19:55,000 و یا به عنوان من حفاری را به هنرمندان. 370 00:19:55,000 --> 00:19:59,000 هر یک از کسانی که صفحه نمایش های مختلف می تواند به عنوان یک کنترل کننده دیدگاه های مختلف نشان داده شده است، 371 00:19:59,000 --> 00:20:04,000 و کنترل مشاهده است که واقعا فقط یک کلاس است که می گوید این صفحه چگونه کار می کند. 372 00:20:04,000 --> 00:20:07,000 چیزهایی که در داخل یک کنترل نمایش، ما قصد داریم به خواص، 373 00:20:07,000 --> 00:20:10,000 بنابراین چیزهایی مثل یک دکمه برای رفتن به مالکیت از کنترل از نظر ما است. 374 00:20:10,000 --> 00:20:13,000 >> ما همچنین به روش، و این در واقع گرداننده رویداد. 375 00:20:13,000 --> 00:20:16,000 این روش می گوید: هنگامی که شما این دکمه را فشار دهید 376 00:20:16,000 --> 00:20:19,000 من می خواهم برای انجام کاری، و در نهایت، دوباره، 377 00:20:19,000 --> 00:20:24,000 ما قصد داریم تا با استفاده از این کلمه کلیدی خود برای دسترسی به عنوان مثال در حال حاضر. 378 00:20:24,000 --> 00:20:29,000 برای ساخت رابط های iOS است که در واقع واقعا، واقعا آسان است. 379 00:20:29,000 --> 00:20:32,000 آنها را به این درگ زیبا و رابط قطره به نام رابط ساز، 380 00:20:32,000 --> 00:20:37,000 و 2 مفاهیم اصلی که سیم-C تا هدف خود را به رابط ساز 381 00:20:37,000 --> 00:20:40,000 هستند IBOutlet و IBAction. 382 00:20:40,000 --> 00:20:44,000 IBOutlet به سادگی می گوید که اگر شما اعلام مالکیت که یک دکمه، 383 00:20:44,000 --> 00:20:47,000 و شما می خواهید به آن قلاب را به چیزی در UI واقعی خود را، 384 00:20:47,000 --> 00:20:49,000 شما در حال رفتن به می گویند که این خروجی. 385 00:20:49,000 --> 00:20:51,000 به طور مشابه، اگر شما می خواهید برای نشان دادن یک event handler 386 00:20:51,000 --> 00:20:54,000 پس از آن شما در حال رفتن به می گویند که این اقدام است. 387 00:20:54,000 --> 00:20:57,000 >> به واقع این نمایش تصویری سیم 388 00:20:57,000 --> 00:21:00,000 و کد خود را از آن واقعا ساده است. 389 00:21:00,000 --> 00:21:03,000 اگر شما می خواهید به ضمیمه IBOutlet، همه شما باید انجام دهید این است که شما کنترل را کلیک کنید. 390 00:21:03,000 --> 00:21:05,000 و ما نمونه ای از این واقعا سریع را ببینید. 391 00:21:05,000 --> 00:21:07,000 شما کنترل کلیک کنید که در آن می گوید: کنترل مشاهده است. 392 00:21:07,000 --> 00:21:09,000 شما در حال رفتن به رابط کاربری بکشید، و یا برعکس، 393 00:21:09,000 --> 00:21:13,000 اگر شما می خواهید به قلاب کردن یک event handler شما در حال رفتن به از رابط کاربری بکشید 394 00:21:13,000 --> 00:21:15,000 در جهت دیگر است. 395 00:21:15,000 --> 00:21:20,000 بیایید نگاهی به یک مثال IOS واقعا ساده است. 396 00:21:20,000 --> 00:21:23,000 >> ایجاد یک پروژه جدید. 397 00:21:23,000 --> 00:21:25,000 من قصد دارم به اینجا آمد تا به برنامه، 398 00:21:25,000 --> 00:21:28,000 و من قصد دارم برنامه نمایش پست تنها را کلیک کنید. 399 00:21:28,000 --> 00:21:31,000 من قصد دارم به روی بعدی کلیک کنید. من به پروژه من یک نام است. 400 00:21:31,000 --> 00:21:33,000 من آن را به میهمان تماس بگیرید. 401 00:21:33,000 --> 00:21:36,000 جالب توجه است، اپل فرض بر این است که شما در حال ایجاد یک محصول 402 00:21:36,000 --> 00:21:38,000 به طوری که شما می توانید آن را و فروش آنها می توانند پول را. 403 00:21:38,000 --> 00:21:41,000 را در اینجا من قصد دارم بگویم که این برنامه iPhone. 404 00:21:41,000 --> 00:21:44,000 شما می توانید برنامه اپل، ایجاد و یا اگر شما می خواهید برای ایجاد یکی از آن برنامه ها 405 00:21:44,000 --> 00:21:47,000 است که با پشتیبانی از هر دو دستگاه شما می توانید که بیش از حد انجام است. 406 00:21:47,000 --> 00:21:49,000 این همان چیزی است که شما می خواهید انعطاف برای تغییر اشیاء خود را به مانند نگاه. 407 00:21:49,000 --> 00:21:51,000 >> شما می خواهید به استفاده از داستانی، که ما آن را بعدا خواهید دید، 408 00:21:51,000 --> 00:21:54,000 و شما قطعا می خواهید به استفاده از شمارش خودکار مرجع، 409 00:21:54,000 --> 00:21:58,000 که یکی از ویژگی های خوبی است که شما مانع از داشتن برای گفتن malloc و آزاد است. 410 00:21:58,000 --> 00:22:03,000 مگر در مواردی که شما می خواهید به تماس malloc و آزاد، من این چک را ترک کنید. 411 00:22:03,000 --> 00:22:07,000 من روی next کلیک کنید، و در نهایت، این است که رفتن به از من بپرسید که در آن من می خواهم به آن را ذخیره کنید. 412 00:22:07,000 --> 00:22:14,000 من ایجاد، ضربه و در اینجا ما بروید. 413 00:22:14,000 --> 00:22:16,000 ایجاد یک پروژه جدید است. 414 00:22:16,000 --> 00:22:19,000 بیش از اینجا در سمت چپ تمام فایل های که در داخل پروژه من هستند، 415 00:22:19,000 --> 00:22:22,000 و توجه داشته باشید که من یک دسته کل، و من حتی انجام هر کاری است. 416 00:22:22,000 --> 00:22:24,000 IOS بزرگ است. 417 00:22:24,000 --> 00:22:27,000 >> به عنوان مثال، در اینجا این ViewController.h، 418 00:22:27,000 --> 00:22:30,000 این است که رفتن به نمایندگی از کنترل به نظر من برای اولین بار، 419 00:22:30,000 --> 00:22:32,000 به طوری که صفحه نمایش برای اولین بار در داخل برنامه من است. 420 00:22:32,000 --> 00:22:34,000 در حال حاضر ما می دانیم که چه می گوید. 421 00:22:34,000 --> 00:22:36,000 ما در حال گفت: من خواستار این ViewController کلاس، 422 00:22:36,000 --> 00:22:40,000 و ViewController می کند همه چیز را که یک UIViewController می کند، 423 00:22:40,000 --> 00:22:43,000 و این، دوباره، برخی از کلاس که اپل نوشت که بسیاری از چیزهای سودمند را برای ما می کند 424 00:22:43,000 --> 00:22:46,000 مانند نمایش روی صفحه نمایش. 425 00:22:46,000 --> 00:22:50,000 اینجا جایی است که من در واقع می توانید شروع به تعریف کنترل به نظر من، 426 00:22:50,000 --> 00:22:52,000 و معلوم است که من واقعا هر یک از این لازم نیست. 427 00:22:52,000 --> 00:22:55,000 این کد boilerplate که اپل به من می دهد به صورت رایگان است. 428 00:22:55,000 --> 00:22:59,000 من لازم است که خط اول، و یا من می توانم در یک کلاس را ندارد، 429 00:22:59,000 --> 00:23:02,000 بنابراین ما می توانیم از آن خلاص شدن از شر و از شر این. 430 00:23:02,000 --> 00:23:05,000 خوب، پس این صفحه خالی است. 431 00:23:05,000 --> 00:23:08,000 >> حالا با کلیک بر روی این MainStoryboard.storyboard 432 00:23:08,000 --> 00:23:11,000 و این جایی است که شروع به گرفتن جالب است. 433 00:23:11,000 --> 00:23:14,000 این نشان دهنده صفحه نمایش برای اولین بار در برنامه من است. 434 00:23:14,000 --> 00:23:17,000 اگر من می خواهم برای اضافه کردن یک دکمه، در HTML، من تا به حال برای ایجاد یک برچسب را فشار دهید. 435 00:23:17,000 --> 00:23:20,000 در آندروید شما باید به ایجاد یک برچسب را فشار دهید، 436 00:23:20,000 --> 00:23:23,000 اما در در iOS اگر من فقط پایین به اینجا می آیند به سمت راست پایین 437 00:23:23,000 --> 00:23:27,000 و اگر من در یکی از این 3 اینجا را کلیک کنید که در آن می گوید: اشیاء، 438 00:23:27,000 --> 00:23:31,000 و من می توانم حرکت کردن، یا من می توانم شروع به جستجو برای دکمه. 439 00:23:31,000 --> 00:23:35,000 و نگاه کنید، یک دکمه، بنابراین اگر من در واقع کشیدن و رها کردن این حق وجود دارد، 440 00:23:35,000 --> 00:23:38,000 من فقط یک دکمه به این صفحه در برنامه من اضافه شده است. 441 00:23:38,000 --> 00:23:41,000 اگر من می خواهم به تغییر متن، من دو برابر می توانید آن را کلیک کنید، 442 00:23:41,000 --> 00:23:47,000 چیزی می گویند فریبنده مانند "من را فشار دهید." 443 00:23:47,000 --> 00:23:51,000 خوب، در حال حاضر اگر من این برنامه را اجرا کنید، بنابراین ما آن را کامپایل، 444 00:23:51,000 --> 00:23:54,000 بنابراین آن را اجرا کنید بر روی دکمه بازی در سمت چپ بالا کلیک کنید، و برنامه من وجود دارد. 445 00:23:54,000 --> 00:23:58,000 من هر چیزی را انجام ندهید، من و شیرین به دنبال برنامه آیفون. 446 00:23:58,000 --> 00:24:01,000 اگر من می خواهم به آن را متوقف کند، شما می توانید دکمه توقف را کلیک کنید 447 00:24:01,000 --> 00:24:03,000 چرا که آن را سرگرم کننده تر است. 448 00:24:03,000 --> 00:24:07,000 >> اجازه دهید بگویم که من واقعا می خواهید چیزی اتفاق می افتد زمانی که من این دکمه را فشار دهید. 449 00:24:07,000 --> 00:24:09,000 برای انجام این کار آنچه که من نیاز به انجام است، نیاز به ایجاد 450 00:24:09,000 --> 00:24:13,000 کنترل کردن رویداد تازه یا یک عمل است. 451 00:24:13,000 --> 00:24:16,000 این بدان معناست که من نیاز به ایجاد برخی از روش های است که من می خواهم به آن می شود 452 00:24:16,000 --> 00:24:18,000 زمانی که من با فشار دکمه، بنابراین ایجاد یک روش جدید به شما اجازه می دهد تا. 453 00:24:18,000 --> 00:24:20,000 من در داخل ViewController.h هستم. 454 00:24:20,000 --> 00:24:22,000 من نیاز به گفتن است که یک روش وجود دارد. 455 00:24:22,000 --> 00:24:26,000 من نیاز به یک خط رابط بین کلماتی که نصف ان در سطر بعد واقع شده چون من قصد دارم به فراخوانی این کنترل نمایش. 456 00:24:26,000 --> 00:24:28,000 من نیاز به ارائه این نوع است. 457 00:24:28,000 --> 00:24:31,000 نوع از این خواهد بود که چیزی IBAction که ما دیدیم زودتر. 458 00:24:31,000 --> 00:24:35,000 این است که یک event handler، پس از آن به بازگشت به IBAction، 459 00:24:35,000 --> 00:24:38,000 و این اشاره به Xcode متعلق به می گویند که 460 00:24:38,000 --> 00:24:40,000 این چیزی است که من می خواهم چیزی به سیم است. 461 00:24:40,000 --> 00:24:45,000 من می توانم آن را یک نام را، مانند buttonPressed، نقطه و ویرگول بدین. 462 00:24:45,000 --> 00:24:48,000 >> در حال حاضر من یک روش جدید را در داخل کلاس من اعلام شده است. 463 00:24:48,000 --> 00:24:50,000 من گفت: این روش وجود داشته باشد. 464 00:24:50,000 --> 00:24:53,000 حالا وارد ViewController.m، 465 00:24:53,000 --> 00:24:56,000 و اجازه دهید می گویند این روش می تواند انجام دهد. 466 00:24:56,000 --> 00:25:03,000 اگر من شروع به تایپ کنید، برای مثال، (خالی) buttonPressed 467 00:25:03,000 --> 00:25:06,000 اطلاع Xcode متعلق به واقعا زیبا و برای من autocompletes. 468 00:25:06,000 --> 00:25:09,000 این واقعا شگفت انگیز است. 469 00:25:09,000 --> 00:25:12,000 توجه داشته باشید که در اینجا است که در داخل فایل متر من هم می توانم بگویم از درجه اعتبار ساقط است، 470 00:25:12,000 --> 00:25:15,000 و دلیل این است که IBAction است که در واقع یک نوع نیست. 471 00:25:15,000 --> 00:25:19,000 این در واقع hashtag تعریف جایی برای باطل، 472 00:25:19,000 --> 00:25:22,000 و باز هم، این است که فقط یک اشاره به Xcode متعلق به که می گوید: 473 00:25:22,000 --> 00:25:25,000 من می خواهم این را به یک event handler، و خواهیم دید که چرا در یک لحظه. 474 00:25:25,000 --> 00:25:28,000 هنگامی که این دکمه فشار داده شده است، من قصد دارم برای انجام کاری مزاحم 475 00:25:28,000 --> 00:25:30,000 مانند نمایش یک پنجره است. 476 00:25:30,000 --> 00:25:35,000 >> برای انجام این کار است که من می توانم یک نمونه جدید از این کلاس به نام UIAlertView ایجاد، 477 00:25:35,000 --> 00:25:39,000 و این یک کلاس است که اپل نوشت که رفتن به صفحه نمایش پرهای مزاحم است. 478 00:25:39,000 --> 00:25:43,000 ما این پنجره هشدار تماس بگیرید و من 2 مراحل، به یاد داشته باشید، برای ایجاد این شی. 479 00:25:43,000 --> 00:25:46,000 اولین چیزی که من باید برای انجام این کار این است که اختصاص فضا. 480 00:25:46,000 --> 00:25:48,000 من می خواهم یک UIAlertView. 481 00:25:48,000 --> 00:25:51,000 من می خواهم برای اختصاص فضا. این روش من است. 482 00:25:51,000 --> 00:25:53,000 روش بعدی من این است که من می خواهم به آن مقداردهی اولیه، 483 00:25:53,000 --> 00:25:58,000 و بنابراین من این روش طولانی و بزرگ، به نام initWithTitle. 484 00:25:58,000 --> 00:26:01,000 که اساسا برای کنترل این پنجره می گوید. 485 00:26:01,000 --> 00:26:04,000 عنوان پنجره من خوش آمدید. 486 00:26:04,000 --> 00:26:08,000 پیام این پنجره می تواند "این است که IOS." 487 00:26:08,000 --> 00:26:10,000 چیزی که نماینده، من نمی دانم چه چیزی است. 488 00:26:10,000 --> 00:26:13,000 بیایید می گویند که هیچ چیز آن را. 489 00:26:13,000 --> 00:26:18,000 حالا دکمه ی که به نظر می رسد می تواند چیزی شبیه به "مطمئن است،" می گویند 490 00:26:18,000 --> 00:26:24,000 و من واقعا نمی خواهید هیچ دکمه ای دیگر، بنابراین حذف آن و بستن براکت بگذارید. 491 00:26:24,000 --> 00:26:27,000 >> خوب، من یکی از فوق العاده است. وجود دارد بروید. 492 00:26:27,000 --> 00:26:30,000 این است که چگونه من می توانم یک پنجره جدید ایجاد کنید. 493 00:26:30,000 --> 00:26:35,000 اگر من می خواهم در واقع نشان می دهد که پنجره من می خواهم به فراخوانی متد نشان می دهد. 494 00:26:35,000 --> 00:26:38,000 برای انجام این کار می تواند هشدار و نشان می دهد می گویند، 495 00:26:38,000 --> 00:26:40,000 و دوباره، تکمیل خودکار فوق العاده خوبی بود. 496 00:26:40,000 --> 00:26:42,000 اگر من را فراموش کرده بود که اگر من فقط در S تایپ، 497 00:26:42,000 --> 00:26:45,000 من می توانم حرکت از اینجا به کشف کردن آنچه در آن بود، 498 00:26:45,000 --> 00:26:48,000 و فیلتر سادگی. 499 00:26:48,000 --> 00:26:52,000 حالا من این پنجره جدید است. 500 00:26:52,000 --> 00:26:55,000 ما باید به آنچه که نماینده به معنی بعد، 501 00:26:55,000 --> 00:26:58,000 و در حال حاضر من می خواهم بگویم من می خواهم این روش به اخراج می شود 502 00:26:58,000 --> 00:27:01,000 هنگامی که دکمه را فشار دهید، به طوری که من قصد دارم به بازگشت به داستانپردازی من، 503 00:27:01,000 --> 00:27:04,000 و من می خواهم به ضمیمه این IBAction. 504 00:27:04,000 --> 00:27:06,000 اولین چیزی که شما می خواهید برای انجام این کار این است که با کلیک بر روی دکمه. 505 00:27:06,000 --> 00:27:08,000 زمانی که من با فشار این دکمه می خواهید چیزی اتفاق می افتد. 506 00:27:08,000 --> 00:27:10,000 من قصد ندارم به پایین نگه داشتن کنترل. 507 00:27:10,000 --> 00:27:13,000 من قصد دارم از دکمه کلیک کنید و بکشید 508 00:27:13,000 --> 00:27:15,000 در اینجا که در آن می گوید: کنترل مشاهده است. 509 00:27:15,000 --> 00:27:17,000 ما می توانید ببینید که آن را به سادگی چراغ. 510 00:27:17,000 --> 00:27:22,000 >> اگر من اجازه رفتن با ماوس من من در حال حاضر باید این پنجره را در اینجا جایی که من به برخی از گزینه های. 511 00:27:22,000 --> 00:27:24,000 یکی از این حوادث است که من می توانم برای ثبت نام اینجا را کلیک کنید. 512 00:27:24,000 --> 00:27:28,000 این ها همه از کسانی که روش های اعلام شده در پرونده من در ساعت به عنوان IBActions. 513 00:27:28,000 --> 00:27:31,000 این است که چگونه Xcode متعلق می داند که چه باید در این لیست کوچک ظاهر می شود، 514 00:27:31,000 --> 00:27:33,000 به طوری که فقط یک اشاره است. 515 00:27:33,000 --> 00:27:37,000 اگر با کلیک بر روی دکمه فشرده، من در حال حاضر ثبت نام گرداننده رویداد. 516 00:27:37,000 --> 00:27:41,000 در جاوا اسکریپت، ما تا به حال بگویم که بعضی از کد است که ثبت نام اداره کننده رویداد. 517 00:27:41,000 --> 00:27:43,000 در هدف-C آن را واقعا آسان است. 518 00:27:43,000 --> 00:27:46,000 اگر من برای اجرای این دوباره 519 00:27:46,000 --> 00:27:49,000 در حال حاضر زمانی که من با فشار دکمه کنترل رویداد من است در برابر آتش، 520 00:27:49,000 --> 00:27:51,000 و من قصد دارم به این پنجره. 521 00:27:51,000 --> 00:27:54,000 فوق العاده، فوق العاده ساده ای وجود دارد. 522 00:27:54,000 --> 00:27:57,000 >> اگر شما همیشه می خواهید برای دیدن همه ی از اتفاقاتی که رخ می دهد به ثبت نام 523 00:27:57,000 --> 00:28:00,000 بر روی یک قطعه اگر من بر روی این دکمه کلیک کنید 524 00:28:00,000 --> 00:28:02,000 و من می آیند در اینجا به سمت راست 525 00:28:02,000 --> 00:28:05,000 در ابتدا شما می توانید ببینید که من در اینجا می توانید چیزهایی مانند نوع دکمه، 526 00:28:05,000 --> 00:28:08,000 بنابراین اگر شما می خواهید یکی از آن من و یا دکمه تماس با ما افزودن 527 00:28:08,000 --> 00:28:10,000 یا هر چیز دیگری. 528 00:28:10,000 --> 00:28:13,000 اگر من می خواهم برای دیدن همه ی رویدادها که بر روی این دکمه، 529 00:28:13,000 --> 00:28:16,000 اگر من به تمام راه را به سمت راست 530 00:28:16,000 --> 00:28:19,000 ما در اینجا می توانید ببینید که در من داشته اند و تمام این وقایع مختلف. 531 00:28:19,000 --> 00:28:23,000 من می توانم دکمه را فشار دهید وقتی که من اجازه رفتن را فشار دهید، هنگامی که شیر من با دو یا هر چیز دیگری، 532 00:28:23,000 --> 00:28:26,000 و من فقط ثبت نام این رویداد به نام لمس کردن در داخل، 533 00:28:26,000 --> 00:28:29,000 و این می گوید که به زودی به عنوان انگشت من می آید کردن دکمه 534 00:28:29,000 --> 00:28:32,000 آن حادثه در حال رفتن به آتش، و این دقیقا همان چیزی است که اتفاق افتاده است. 535 00:28:32,000 --> 00:28:36,000 این نوع از پیش فرض رویداد دکمه فشار داده شده است. 536 00:28:36,000 --> 00:28:39,000 >> هر گونه سؤال تا کنون؟ 537 00:28:39,000 --> 00:28:43,000 خوب، این که چگونه ما می توانیم شروع به سیم چیز در کد ما 538 00:28:43,000 --> 00:28:46,000 به چیزهایی داخل رابط ما. 539 00:28:46,000 --> 00:28:49,000 به یاد داشته باشید اولین چیزی که ما تا به حال انجام بود برای پیدا کردن کد 540 00:28:49,000 --> 00:28:54,000 و پس از آن ما سیمی رابط کاربری را با کد، 541 00:28:54,000 --> 00:28:57,000 و برای اولین بار این برنامه ما وجود دارد. 542 00:28:57,000 --> 00:29:00,000 خوب، بود که واقعا سرد است، و ما در ایجاد این دکمه. 543 00:29:00,000 --> 00:29:03,000 چه می شود اگر ما نمی خواهیم برای ایجاد یک دسته از خواص 544 00:29:03,000 --> 00:29:05,000 به نمایندگی از این دکمه ها؟ 545 00:29:05,000 --> 00:29:08,000 برای مثال، در حرکات غیر ارادی اندامها پا تام من 9 دکمه، 546 00:29:08,000 --> 00:29:11,000 و از آن می شود، فوق العاده، فوق العاده آزار دهنده به کشیدن و رها کردن 9 بار 547 00:29:11,000 --> 00:29:14,000 یا اگر من تا به حال به حرکات غیر ارادی اندامها پا تام با 81 به جای از 9 548 00:29:14,000 --> 00:29:17,000 و من تا به حال 81 بار کشیدن و رها کردن، و این لنگ. 549 00:29:17,000 --> 00:29:20,000 آنچه ما به جای آن می توانید انجام دهید این است که بسیار شبیه به HTML 550 00:29:20,000 --> 00:29:23,000 هنگامی که ما تا به حال چیزهایی مانند شناسه و نام و ما می توانیم برای همه چیز 551 00:29:23,000 --> 00:29:27,000 توسط ID خود، یک مفهوم مشابه در iOS را به نام برچسب ها وجود دارد. 552 00:29:27,000 --> 00:29:31,000 >> یک برچسب است که به سادگی یک شناسه عددی منحصر به فرد برای یک جزء. 553 00:29:31,000 --> 00:29:34,000 اگر من می گویند این یک تگ از 0 به عنوان مثال، 554 00:29:34,000 --> 00:29:38,000 اگر یک دکمه ایجاد کنم و به آن برچسب را از 0 به من بدهید، و خواهیم دید که چگونه به انجام این کار در یک لحظه، 555 00:29:38,000 --> 00:29:41,000 اگر من می خواهم به آن دکمه می توانید به سادگی می گویند من می خواهم به تماس 556 00:29:41,000 --> 00:29:45,000 ، viewWithTag روش بر روی شیء در اینجا 557 00:29:45,000 --> 00:29:48,000 self.view، که نشان دهنده صفحه نمایش در حال حاضر، به عنوان مثال. 558 00:29:48,000 --> 00:29:53,000 اگر من اسمش که روش viewWithTag، من قصد دارم به جلو و عقب را فشار دهید با برچسب 0. 559 00:29:53,000 --> 00:29:58,000 بیایید نگاهی به این ساختمان تیک تاک انگشت پا. 560 00:29:58,000 --> 00:30:01,000 اول، این داستانپردازی من است. 561 00:30:01,000 --> 00:30:05,000 من ایجاد کرده اید این 10 دکمه UI. 562 00:30:05,000 --> 00:30:07,000 توجه داشته باشید که همه آنها به همان اندازه است. 563 00:30:07,000 --> 00:30:11,000 اگر یکی از این کلیک کنید و من دوباره در اینجا در این سمت راست 564 00:30:11,000 --> 00:30:15,000 شما خواهید دید من تنظیم فونت حق در اینجا، بنابراین من فونت کمی بزرگتر است، 565 00:30:15,000 --> 00:30:19,000 اما چیزی که من هم بود من مجموعه ای از این برچسب. 566 00:30:19,000 --> 00:30:23,000 به من گفت که این برچسب، از مجموع 1، که در سمت چپ بالا است. 567 00:30:23,000 --> 00:30:26,000 >> در حال حاضر، اگر یکی دیگر از دکمه کلیک کنید، مانند این یکی در اینجا، 568 00:30:26,000 --> 00:30:29,000 در حال حاضر شما خواهید دید که برچسب من است 2. 569 00:30:29,000 --> 00:30:32,000 هر کدام از این دکمه ها فقط دارای یک برچسب منحصر به فرد، 570 00:30:32,000 --> 00:30:35,000 و پس از این بعد چگونه می توانم قصد دارم برای شروع تعامل 571 00:30:35,000 --> 00:30:38,000 با برنامه من. 572 00:30:38,000 --> 00:30:40,000 این همه در داخل یکی از نمایش کنترل است. 573 00:30:40,000 --> 00:30:42,000 اما در اینجا چیزی است که ما داریم. 574 00:30:42,000 --> 00:30:44,000 ما 3 خواص در اینجا. 575 00:30:44,000 --> 00:30:49,000 یکی از اولین و آخرین در حال رفتن به نمایندگی از دولت هیئت مدیره است. 576 00:30:49,000 --> 00:30:53,000 در واقع این یکی از اولین آرایه نمایندگی که در آن XS و سیستم عامل است. 577 00:30:53,000 --> 00:30:57,000 این یکی دیگر در اینجا به ما می گوید که به نوبه خود آن است. 578 00:30:57,000 --> 00:31:01,000 شما متوجه خواهید شد که من هم این چیزها در اینجا. 579 00:31:01,000 --> 00:31:05,000 قبل از زمانی که ما اعلام کرد که خواص ما به آنها یک نام و یک نوع است. 580 00:31:05,000 --> 00:31:08,000 ما همچنین می توانیم آنها را در اینجا برخی از اطلاعات اضافی. 581 00:31:08,000 --> 00:31:11,000 این اولین nonatomic می گوید، و چه این ماده می گوید 582 00:31:11,000 --> 00:31:16,000 تنها یک چیز است که اساسا هرگز تلاش می شود برای دسترسی به این متغیر در یک زمان است. 583 00:31:16,000 --> 00:31:19,000 شما می توانید برنامه های کاربردی پیچیده تر است که چند رشته ای انجام دهید، 584 00:31:19,000 --> 00:31:22,000 و به همین ترتیب به خراش ما تا به حال موضوعات مختلف، 585 00:31:22,000 --> 00:31:25,000 و جن های مختلف می تواند انجام کارهای مختلف در همان زمان. 586 00:31:25,000 --> 00:31:29,000 >> در صورتی که این مورد، که آن را در هر چیزی که ما می شود به دنبال در نیست، 587 00:31:29,000 --> 00:31:33,000 اگر ما می گویند nonatomic در واقع این همه چیز را کمی سریعتر است. 588 00:31:33,000 --> 00:31:37,000 ما نیز از این چیزی به نام تخصیص، قوی یا ضعیف است. 589 00:31:37,000 --> 00:31:40,000 این اختصاص دهید فقط می گوید که این یک نوع استاندارد است. 590 00:31:40,000 --> 00:31:43,000 این یک شی و یا یک اشاره گر است نه به خاطر این است که فقط یک بولی، 591 00:31:43,000 --> 00:31:46,000 بنابراین بولی است که به هدف-C ساخته شده است. 592 00:31:46,000 --> 00:31:49,000 این ماده می گوید سعی نکنید هر چیزی فانتزی با اشاره گرها در اینجا به انجام. 593 00:31:49,000 --> 00:31:51,000 این یک رونده به طور منظم است. 594 00:31:51,000 --> 00:31:54,000 قوی و ضعیف، ضعیف می گوید که در واقع 595 00:31:54,000 --> 00:31:57,000 من می خواهم این را به اشاره به چیزی در کنترل مشاهده است. 596 00:31:57,000 --> 00:32:00,000 من قصد ندارم در واقع تخصیص و یا init انجام این خودم. 597 00:32:00,000 --> 00:32:04,000 سازنده رابط، زمانی که من برای اجرای برنامه است، رفتن به رسیدگی به همه که دهی اولیه. 598 00:32:04,000 --> 00:32:07,000 اگر ضعیف است، من می گویم که می گوید شخص دیگری در حال رفتن به ایجاد این. 599 00:32:07,000 --> 00:32:09,000 اگر من می گویم قوی است، این ماده می گوید که من قصد دارم به یکی از 600 00:32:09,000 --> 00:32:12,000 که در ایجاد این شیء هیئت مدیره، 601 00:32:12,000 --> 00:32:14,000 و بنابراین در اینجا من روش برخی بیشتر در اینجا 602 00:32:14,000 --> 00:32:18,000 برای مثال، یک عمل برای زمانی که بازی های جدید بر روی دکمه فشار داده شده است، 603 00:32:18,000 --> 00:32:20,000 اقدام برای زمانی که هر یک از دکمه های دیگر، فشرده، 604 00:32:20,000 --> 00:32:23,000 و غیره و همکاران. 605 00:32:23,000 --> 00:32:26,000 >> ما نمی خواهد به بیش از حد از منطق از تیک تاک انگشت پا، 606 00:32:26,000 --> 00:32:30,000 با وجود آن که بسیار هیجان انگیز است، اما بیایید نگاهی به 607 00:32:30,000 --> 00:32:33,000 بعضی از چیزهایی که ما می توانیم در داخل به IOS. 608 00:32:33,000 --> 00:32:35,000 این روش بازی های جدید در حال رفتن به اخراج می شود 609 00:32:35,000 --> 00:32:37,000 هر زمان که بازی های جدید بر روی دکمه I را فشار دهید. 610 00:32:37,000 --> 00:32:41,000 به قلاب که من به سادگی می آیند را به استوری بورد من. 611 00:32:41,000 --> 00:32:43,000 من در بازی جدید کلیک. 612 00:32:43,000 --> 00:32:47,000 اگر من می آیند در اینجا به سمت راست من می توانم آن را مشاهده کنید 613 00:32:47,000 --> 00:32:50,000 لمس کردن در داخل است به روش newGame سیمی. 614 00:32:50,000 --> 00:32:53,000 به همین دلیل این است که رفتن به اخراج. 615 00:32:53,000 --> 00:32:56,000 روش newGame است به انجام برخی از راه اندازی. 616 00:32:56,000 --> 00:32:59,000 رفتن به می گویند من می خواهم به شما برای روشن شدن وضعیت هیئت مدیره است. 617 00:32:59,000 --> 00:33:01,000 این یک روش خوب در ثبات آرایه است. 618 00:33:01,000 --> 00:33:03,000 این است که می گویند در حال حاضر به نوبه خود X، 619 00:33:03,000 --> 00:33:07,000 و در حال حاضر من می خواهم را به استفاده از این چیزی viewWithTag. 620 00:33:07,000 --> 00:33:11,000 >> من می دانم که دکمه های من برچسب ها 1-9 621 00:33:11,000 --> 00:33:13,000 و این چیزی است که من خودسرانه برداشت. 622 00:33:13,000 --> 00:33:15,000 اگر من می خواهم به هر یک از دکمه برای تنظیم متن خالی باشد 623 00:33:15,000 --> 00:33:17,000 چرا که من فقط شروع یک بازی جدید است و من می خواهم نه 624 00:33:17,000 --> 00:33:20,000 XS یا سیستم عامل باقی می ماند من می توانم این کار را انجام دهند. 625 00:33:20,000 --> 00:33:24,000 می توانم بگویم من می خواهم با برچسب، 1، 2، 3، 4 و غیره. 626 00:33:24,000 --> 00:33:27,000 با این کار جلو و دکمه های مختلف در هر زمان. 627 00:33:27,000 --> 00:33:30,000 در اینجا من قصد دارم به بازیگران به UIButton. 628 00:33:30,000 --> 00:33:33,000 درست مانند ما می توانند به نوع داده int به شناور و بالعکس بازیگران 629 00:33:33,000 --> 00:33:37,000 این ماده می گوید که من می خواهم به بازیگران به UIButton. 630 00:33:37,000 --> 00:33:40,000 این بدان معناست که این نوع خواهد بود * UIButton 631 00:33:40,000 --> 00:33:43,000 به دلیل از اشاره گر، اما نگران نباشید، آنها ترسناک نیست دیگر. 632 00:33:43,000 --> 00:33:47,000 >> هنگامی که من این را فشار دهید من قصد دارم با یک روش بر روی آن است. 633 00:33:47,000 --> 00:33:50,000 این روش به نام setTitle forState، و به همین ترتیب این ماده می گوید 634 00:33:50,000 --> 00:33:53,000 من می خواهم به مجموعه ای از متن دکمه به رشته خالی، 635 00:33:53,000 --> 00:33:57,000 و من می خواهم آن را به رشته خالی زمانی که آن را فشرده. 636 00:33:57,000 --> 00:34:01,000 اگر من با استفاده از این روش، من می توانم متن دکمه را تغییر دهید 637 00:34:01,000 --> 00:34:04,000 به محض این که کسی در آن بازدید، اما ما می خواهیم می گویند وقتی دکمه تنها نشسته وجود دارد 638 00:34:04,000 --> 00:34:07,000 من می خواهم متن خالی باشد. 639 00:34:07,000 --> 00:34:10,000 در نهایت، ما در حال رفتن به مقداردهی اولیه هیئت مدیره، 640 00:34:10,000 --> 00:34:12,000 و من قصد دارم برای گفتن که همه چیز در حال حاضر 0، 641 00:34:12,000 --> 00:34:15,000 بنابراین این هیئت مدیره تغییر ناپذیر اعضای یک آرایه قابل تغییر است، 642 00:34:15,000 --> 00:34:21,000 که بدین معناست که می توانید از روش addObject و تنها در داخل که 0 نفر از آن تماس بگیرید. 643 00:34:21,000 --> 00:34:23,000 این چیزی است که اتفاق می افتد زمانی که من ایجاد یک بازی جدید است. 644 00:34:23,000 --> 00:34:25,000 >> بیایید نگاهی به یکی دیگر. 645 00:34:25,000 --> 00:34:28,000 این روش در اینجا IBAction که رفتن به فشرده است 646 00:34:28,000 --> 00:34:31,000 در هر زمان یکی از کسانی که مربع فشار داده شده است. 647 00:34:31,000 --> 00:34:33,000 در حال حاضر ما باید منطق پا برخی از تیک تاک در اینجا. 648 00:34:33,000 --> 00:34:36,000 ما شکل که به نوبه خود آن است، 649 00:34:36,000 --> 00:34:39,000 و بر اساس آن ما یا X یا O، 650 00:34:39,000 --> 00:34:43,000 اما ما می بینیم که ما در حال استفاده مجدد از این کنترل رویداد 651 00:34:43,000 --> 00:34:45,000 برای هر یک از آن دکمه. 652 00:34:45,000 --> 00:34:49,000 این بدان معنی است که من می توانم در یک روش بر روی دکمه بالا سمت چپ را ندارد، 653 00:34:49,000 --> 00:34:52,000 روش های مختلف برای دکمه سمت راست پایین، اگر چه من می توانستم انجام داده است که. 654 00:34:52,000 --> 00:34:54,000 که واقعا نمی شود طراحی خوب است. 655 00:34:54,000 --> 00:34:57,000 آنچه من انجام می دهند در اینجا این است که من در واقع برای تعیین 656 00:34:57,000 --> 00:35:00,000 آنچه که برچسب از دکمه بود که فشرده شده است. 657 00:35:00,000 --> 00:35:04,000 شما متوجه است که این روش بازی طول می کشد یک آرگومان است. 658 00:35:04,000 --> 00:35:07,000 نام فرستنده، فرستنده است فرستنده در حال رفتن به 659 00:35:07,000 --> 00:35:10,000 نمایندگی دقیقا همان چیزی است که عمل بر گرفته شده است. 660 00:35:10,000 --> 00:35:15,000 اگر یک دکمه را فشار دهید، این فرستنده است که رفتن به این باشد که UIButton 661 00:35:15,000 --> 00:35:18,000 که من در واقع فشرده، به طوری که بدان معنی است که که UIButton 662 00:35:18,000 --> 00:35:20,000 برچسب چون من ایجاد یک برچسب. 663 00:35:20,000 --> 00:35:23,000 >> اگر من می خواهم به برچسب به سادگی می توان گفت 664 00:35:23,000 --> 00:35:26,000 من می خواهم تگ فرستنده، 665 00:35:26,000 --> 00:35:28,000 و دوباره، من فقط آن را به UIButton قالبی. 666 00:35:28,000 --> 00:35:32,000 من اتفاق می افتد که می دانیم که فرستنده خواهد بود UIButton. 667 00:35:32,000 --> 00:35:34,000 این همیشه باید به UIButton. 668 00:35:34,000 --> 00:35:36,000 من می توانم به عنوان مثال، برای ثبت نام اینجا را کلیک کنید هندلر 669 00:35:36,000 --> 00:35:38,000  برای یکی یک دکمه، یک لغزنده است. 670 00:35:38,000 --> 00:35:40,000 در این مورد، من می دانم که آنها همه دکمه ها، بنابراین من قصد دارم برای گفتن 671 00:35:40,000 --> 00:35:43,000 من می خواهم این را به عنوان یک دکمه، و پس از آن من می توانید از تگ دریافت کنید، 672 00:35:43,000 --> 00:35:48,000 و از تگ من در حال حاضر جایی که من داخل هیئت مدیره هستم. 673 00:35:48,000 --> 00:35:51,000 سپس من به سادگی می توانید هر یک از X و یا O، می تواند به نوبه خود تلنگر مجموعه، 674 00:35:51,000 --> 00:35:54,000 بررسی کنید که به دست آورد، و غیره. 675 00:35:54,000 --> 00:35:59,000 >> هر گونه سوال در مورد این که تا کنون؟ 676 00:35:59,000 --> 00:36:02,000 خوب، تمام کد ارسال شده در آنلاین ما نمی خواهیم به بیش از حد 677 00:36:02,000 --> 00:36:06,000 تیک تاک پا منطق است، اما در حال حاضر شما می توانید ببینید که واقعا 678 00:36:06,000 --> 00:36:09,000 همه ما انجام می دهیم این است که ما در حال حلقه در طول این آرایه، 679 00:36:09,000 --> 00:36:13,000 بنابراین ما باید یک زن و شوهر برای حلقه های اینجا، و ما فقط نسبت به 680 00:36:13,000 --> 00:36:18,000 می توانم در یک بازی در همه ردیف ها، یک بازی در یک ستون و یا هر چیزی شبیه به آن را داریم. 681 00:36:18,000 --> 00:36:21,000 در واقع این برنامه، اجرا، اگر من بر روی یکی از این دکمه ها ضربه بزنید 682 00:36:21,000 --> 00:36:24,000 که روش بازی اخراج شده بود، به طوری که یعنی من فقط تنظیم 683 00:36:24,000 --> 00:36:31,000 را فشار دهید به X است، بنابراین در حال حاضر این دکمه خواهد بود O، و به همین ترتیب، 684 00:36:31,000 --> 00:36:35,000 و به طوری که چگونه ما شروع به تعامل با این برنامه است. 685 00:36:35,000 --> 00:36:38,000 >> خواهیم کد پستی، بنابراین احساس رایگان به مطالعه کردن که، 686 00:36:38,000 --> 00:36:43,000 اما اجازه دهید در حال حاضر بحث در مورد برخی از برنامه ها هستند که بیش از یک صفحه. 687 00:36:43,000 --> 00:36:47,000 به عنوان هیجان انگیز به عنوان تیک تاک انگشت پا بود، بسیاری از برنامه ها در داخل به IOS 688 00:36:47,000 --> 00:36:50,000 نوع از این مته به پایین همه چیز را با صفحه نمایش های چندگانه. 689 00:36:50,000 --> 00:36:54,000 مفهوم اولین بار است که ما نیاز به صحبت کردن در مورد پروتکل های، 690 00:36:54,000 --> 00:36:57,000 و یک پروتکل است که به سادگی مجموعه ای از روش 691 00:36:57,000 --> 00:36:59,000 که شما می توانید وعده به کار گیرید. 692 00:36:59,000 --> 00:37:02,000 اگر این پروتکل جدید با 2 روش اول این ایجاد کنم، 693 00:37:02,000 --> 00:37:05,000 اگر نوع بازگشت از درجه اعتبار ساقط است، من آن را به نام صنایع غذایی. 694 00:37:05,000 --> 00:37:07,000 این طول می کشد بدون آرگومان. من روش دیگری. 695 00:37:07,000 --> 00:37:11,000 این تابع از نوع int است. من آن را به نام نوار، و آن طول می کشد یک آرگومان است. 696 00:37:11,000 --> 00:37:14,000 تمام این پروتکل این است که به نام SomeProtocol اینجا، 697 00:37:14,000 --> 00:37:19,000 این یک مجموعه ای از چیزهایی که کسی می تواند پیاده سازی شده است. 698 00:37:19,000 --> 00:37:22,000 من در داخل این پروتکل گفت: آنچه صنایع غذایی می کند. 699 00:37:22,000 --> 00:37:26,000 در عوض، من فقط گفت: شما می توانید صنایع غذایی اگر می خواهید به تعریف. 700 00:37:26,000 --> 00:37:30,000 اگر من ایجاد یک کنترل نمایش و یا ایجاد یک کلاس 701 00:37:30,000 --> 00:37:33,000 من در داخل می تواند از آن وعده کلاس برای پیاده سازی 702 00:37:33,000 --> 00:37:40,000 برخی از این روش، به طوری که برای مثال، اگر می گویند 703 00:37:40,000 --> 00:37:43,000 این در حال حاضر می گوید: من وعده را به شما که در داخل 704 00:37:43,000 --> 00:37:50,000 از این کلاس کنترل مشخصات من به تعاریف برای صنایع غذایی و نوار هر دو را داشته باشد. 705 00:37:50,000 --> 00:37:52,000 >> این است که چرا مفید است؟ 706 00:37:52,000 --> 00:37:55,000 بسیاری از قطعات در داخل به IOS استفاده از این 707 00:37:55,000 --> 00:37:58,000 الگوی طراحی به نام هیئت، و آنچه هیئت می گوید: 708 00:37:58,000 --> 00:38:01,000 این است که، برای مثال، اگر من یک جعبه متن 709 00:38:01,000 --> 00:38:04,000 و برخی از رویدادی است که می تواند در داخل جعبه متن من ثبت نام وجود دارد، 710 00:38:04,000 --> 00:38:07,000 به جای ایجاد وقایع جداگانه آنچه که من می توانید انجام دهید این است که من می توانم بگویم 711 00:38:07,000 --> 00:38:10,000 نماینده ای از این جعبه متن خواهد بود برخی از جسم است. 712 00:38:10,000 --> 00:38:13,000 وقتی که من می گویم این است که یک نماینده در حال حاضر است که بدان معنی است که 713 00:38:13,000 --> 00:38:16,000 هر زمان که برخی از رویداد را در جعبه متن از کار اخراج شده اند 714 00:38:16,000 --> 00:38:18,000 به جای داشتن به آن و یا هر چیزی که می خواهم برای ثبت نام اینجا را کلیک کنید 715 00:38:18,000 --> 00:38:21,000 فقط رفتن به فراخوانی متد نماینده. 716 00:38:21,000 --> 00:38:24,000 به عنوان مثال، در داخل جعبه متن من من یک روش برای زمانی که من را فشار دهید 717 00:38:24,000 --> 00:38:27,000 این دکمه در سمت راست پایین انجام می شود، 718 00:38:27,000 --> 00:38:30,000 و به همین ترتیب به جای ثبت نام گرداننده رویداد چیزی است که من می توانم بگویم این است 719 00:38:30,000 --> 00:38:34,000 جعبه متن، در اینجا یک شی است که من می خواهم شما را به تماس با متد 720 00:38:34,000 --> 00:38:37,000 هر زمان پرس کسی دکمه انجام می شود، 721 00:38:37,000 --> 00:38:40,000 و این بدان معناست که آن شی برای به اجرا درآوردن برخی از پروتکل 722 00:38:40,000 --> 00:38:45,000 است که می گوید: قول می دهم که عمل انجام شده را فشار دهید برای تعریف، 723 00:38:45,000 --> 00:38:47,000 چرا که اگر آن را می کند که روش تعریف نیست و شما با فشار انجام می شود، 724 00:38:47,000 --> 00:38:49,000 سپس آن را گیج کننده می شود. 725 00:38:49,000 --> 00:38:55,000 >> بیایید نگاهی به یک مثال. 726 00:38:55,000 --> 00:38:58,000 در اینجا من به سادگی یک جعبه متن، 727 00:38:58,000 --> 00:39:04,000 و یکی از خواص از این جعبه متن را در اینجا در این سمت راست نماینده است. 728 00:39:04,000 --> 00:39:06,000 این اموال از کلاس است. 729 00:39:06,000 --> 00:39:09,000 چیزی که من در اینجا این است که من کنترل کلیک شده است، و من از این نقطه به اینجا کشیده 730 00:39:09,000 --> 00:39:13,000 کنترل مشخصات، و می گوید که در حال حاضر نماینده ای از این جعبه متن 731 00:39:13,000 --> 00:39:18,000 رفتن به کنترل مشاهده است. 732 00:39:18,000 --> 00:39:20,000 این بدان معنی است که زمانی که برخی از عملیات رخ می دهد، به جای ثبت نام 733 00:39:20,000 --> 00:39:25,000 گرداننده رویداد جداگانه من می خواهم شما را به ارسال آنها به delegate است. 734 00:39:25,000 --> 00:39:28,000 حالا نگاهی به نظر من کنترل به شما اجازه می دهد تا. 735 00:39:28,000 --> 00:39:32,000 در داخل فایل ساعت من یک وعده است. 736 00:39:32,000 --> 00:39:36,000 به من وعده داده شده برای پیاده سازی برخی از روش داخل این پروتکل 737 00:39:36,000 --> 00:39:38,000 به نام UITextFieldDelegate، و دوباره، 738 00:39:38,000 --> 00:39:42,000 این است که فقط برخی از لیستی از برخی از چیزهایی که من می توانید انتخاب کنید برای پیاده سازی است. 739 00:39:42,000 --> 00:39:46,000 >> اگر من به اینجا می آیند در فایل متر من، من پیاده سازی یکی از این روش ها است. 740 00:39:46,000 --> 00:39:49,000 من آن را به نام textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 زیرا این چیزی است که آن را در داخل این پروتکل نامیده می شد. 742 00:39:52,000 --> 00:39:57,000 و در حال حاضر هر زمان که من فشار دکمه انجام می شود در داخل فیلد متنی است که 743 00:39:57,000 --> 00:40:00,000 این همان چیزی است که رفتن به نامیده می شود، بنابراین من یک event handler برای ثبت نام اینجا را کلیک کنید. 744 00:40:00,000 --> 00:40:03,000 من متصل نماینده، و هر زمان که این رویداد از کار اخراج شده است 745 00:40:03,000 --> 00:40:08,000 این روش که برای به نام است، پس اگر من می آیند در اینجا به داستانپردازی من و آن را اجرا کنید. 746 00:40:08,000 --> 00:40:11,000 در حالی که بارگذاری ما می توانید ببینید که چه می کند این است. 747 00:40:11,000 --> 00:40:13,000 بر روی صفحه نمایش من من 2 چیز است. 748 00:40:13,000 --> 00:40:16,000 من در این زمینه متن، و من این برچسب. 749 00:40:16,000 --> 00:40:19,000 من به سادگی گفت: من می خواهم متن این برچسب 750 00:40:19,000 --> 00:40:23,000 برابر به هر کاربر در داخل فیلد متن تایپ شده است. 751 00:40:23,000 --> 00:40:26,000 این خط بعد در اینجا است که به سادگی یک روش که من خواستار 752 00:40:26,000 --> 00:40:29,000 در زمینه متن که می گوید من می خواهم به شما برای مخفی کردن صفحه کلید. 753 00:40:29,000 --> 00:40:33,000 این است که فقط از روش خودسرانه که اپل را انتخاب است. 754 00:40:33,000 --> 00:40:38,000 >> باز هم، قبل از اینکه من چیزی من تا به حال به سیم همه چیز، بنابراین من برای اولین بار آمد در اینجا. 755 00:40:38,000 --> 00:40:42,000 از کنترل مشخصات من را بکشید را به جعبه متن. 756 00:40:42,000 --> 00:40:46,000 من اجازه رفتن، و من در اینجا می توانید ببینید که من می توانم این متن املاک میدان را 757 00:40:46,000 --> 00:40:49,000 از اینجا در کنترل مشخصات، تعریف ملک من 758 00:40:49,000 --> 00:40:52,000 که IBOutlet یک فیلد متنی می باشد. 759 00:40:52,000 --> 00:40:55,000 این ماده می گوید که من می توانم این ویژگی سیم 760 00:40:55,000 --> 00:40:59,000 به یک رشته متن در UI. 761 00:40:59,000 --> 00:41:03,000 در حال حاضر زمانی که این من کلیک می توانید شروع به تایپ. 762 00:41:03,000 --> 00:41:06,000 در حال حاضر اگر من کلیک دکمه انجام می شود این است که رفتن به آتش 763 00:41:06,000 --> 00:41:08,000 یک رویداد که من در حال حاضر می توانید به پاسخ. 764 00:41:08,000 --> 00:41:10,000 گرداننده رویداد. 765 00:41:10,000 --> 00:41:13,000 این که چگونه من فقط به آن دکمه انجام می شود. 766 00:41:13,000 --> 00:41:15,000 را حس؟ 767 00:41:15,000 --> 00:41:20,000 >> این یک الگوی طراحی شده است که شما تا به حال ممکن است به خودتان پیدا کنید 768 00:41:20,000 --> 00:41:23,000 ایجاد پروتکل خود را، اما فقط می دانم که برخی از 769 00:41:23,000 --> 00:41:27,000 اجزای مختلف در iOS برای ثبت نام اینجا را کلیک کنید حوادث در راه های مختلف. 770 00:41:27,000 --> 00:41:29,000 دکمه ها، به عنوان مثال، استفاده از آن IBActions. 771 00:41:29,000 --> 00:41:32,000 فیلدهای متنی، از سوی دیگر، در حال رفتن به استفاده از نمایندگان است. 772 00:41:32,000 --> 00:41:36,000 ما می توانید ببینید و شما می توانید همه که داخل تا اسناد نگاه کنید. 773 00:41:36,000 --> 00:41:41,000 به هر حال، در واقع از یک تن مواد UI به IOS برای شما ساخته شده است وجود دارد، 774 00:41:41,000 --> 00:41:46,000 بنابراین برای مثال، راه من ساخته شده است که می گویند در سمت راست پایین انجام می شود 775 00:41:46,000 --> 00:41:48,000 این است که من انتخاب این رشته متن. 776 00:41:48,000 --> 00:41:50,000 من اومدم اینجا. 777 00:41:50,000 --> 00:41:53,000 من میکنین پایین کمی به بازگشت کلید، 778 00:41:53,000 --> 00:41:56,000 و من در واقع می تواند این دسته از مسائل، مانند اگر من می خواهم که برای گفتن 779 00:41:56,000 --> 00:42:00,000 تماس اضطراری به جای من می توانم آن را انجام دهد که کاملا تصادفی است. 780 00:42:00,000 --> 00:42:02,000 و من نمی دانم که چرا ساخته شده است در دکمه تماس اضطراری وجود دارد، 781 00:42:02,000 --> 00:42:06,000 اما وجود دارد، آن را می گوید تماس اضطراری در نامه واقعا کوچک است. 782 00:42:06,000 --> 00:42:08,000 شما بروید. 783 00:42:08,000 --> 00:42:12,000 >> قطعا همه از این گزینه های مختلف در در iOS کشف. 784 00:42:12,000 --> 00:42:14,000 هر گونه سوال در مورد نمایندگان؟ 785 00:42:14,000 --> 00:42:18,000 دوباره، فقط یک الگوی طراحی جالب است که شما باید آگاه باشند از. 786 00:42:18,000 --> 00:42:22,000 خوب، اجازه دهید بعدی نگاهی به نمایش ها جدول. 787 00:42:22,000 --> 00:42:26,000 مشاهده جدول است که اساسا که لیستی از اقلام است که بیش از همه در محل IOS. 788 00:42:26,000 --> 00:42:29,000 هنگامی که شما در حال کوه در می رم از طریق تمام مخاطبین شما، شما در حال نگاه کردن به 789 00:42:29,000 --> 00:42:34,000 صفحه تنظیمات، و این نوع از لیستی از چیزهایی مشاهده جدول نامیده می شود. 790 00:42:34,000 --> 00:42:37,000 اجرای نمایش جدول در IOS خیلی ساده است. 791 00:42:37,000 --> 00:42:41,000 به جای ساخت یک کلاس که از آن UIViewController فرود 792 00:42:41,000 --> 00:42:44,000 مثل ما انجام داده ایم، قبل از اینکه ما به سادگی نیاز به گفتن به جای 793 00:42:44,000 --> 00:42:46,000 همه چیز UIViewController می کند من می خواهم به انجام این کار، 794 00:42:46,000 --> 00:42:50,000 من می گویم همه چیز UITableViewController می کند من می خواهم به انجام این کار، 795 00:42:50,000 --> 00:42:54,000 به طوری که به سادگی می افزاید: برخی از چیزهای اضافی که کاملا برای ما انجام می شود. 796 00:42:54,000 --> 00:42:58,000 ما نیاز به کار بسیار کمی اساسا در جاهای خالی داخل جدول را پر کنید. 797 00:42:58,000 --> 00:43:02,000 >> به منظور نشان دادن جدول من باید برای پاسخ به برخی از سوالات. 798 00:43:02,000 --> 00:43:06,000 اولین سوال من نیاز به پاسخ این است که چگونه بسیاری از بخش است که در جدول هستند؟ 799 00:43:06,000 --> 00:43:08,000 هنگامی که شما در حال کوه در می رم از طریق نرم افزار شما تماس با ما، شما متوجه خواهید شد که این نوع 800 00:43:08,000 --> 00:43:12,000 به عنوان سازمان یافته، و سپس شما باید BS، و شما باید که زیر هدر کمی. 801 00:43:12,000 --> 00:43:14,000 هر یک از آن بخش نامیده می شود. 802 00:43:14,000 --> 00:43:16,000 شما ممکن است یا ممکن است این نیاز نیست. 803 00:43:16,000 --> 00:43:19,000 اولین چیزی که شما باید انجام دهید این است که پیاده سازی یک روش 804 00:43:19,000 --> 00:43:22,000 نام tableView: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 که به سادگی می گرداند که چگونه بسیاری از بخش های به شما، 806 00:43:25,000 --> 00:43:29,000 پس از این بازگشت اگر شما یکی از نمایش جدول بزرگ می گویند. 807 00:43:29,000 --> 00:43:33,000 سوال بعدی این است که در iOS نیاز به دانستن این است که چگونه بسیاری از ردیف دارید؟ 808 00:43:33,000 --> 00:43:36,000 به عنوان مثال، شما در حال کوه در می رم از طریق مشاهده جدول. 809 00:43:36,000 --> 00:43:39,000 شما یک عدد ثابت از آهنگ های شما دنبال آن هستید و یا شماره ثابت از مخاطبین. 810 00:43:39,000 --> 00:43:41,000 اگر شما به من، البته، نه آن که بسیاری از، 811 00:43:41,000 --> 00:43:44,000 و به طوری که چگونه در iOS می داند که چگونه بسیاری از سلول ها به نمایش. 812 00:43:44,000 --> 00:43:46,000 >> باز هم، این می تواند چیزی مثل بازگشت 3 می گویند. 813 00:43:46,000 --> 00:43:49,000 مشاهده جدول دارای 3 ردیف است. 814 00:43:49,000 --> 00:43:52,000 در نهایت، IOS نیاز به دانستن آنچه که هر سلول به نظر می رسد مانند، 815 00:43:52,000 --> 00:43:54,000 پس آنچه که در واقع رفتن به انجام این روش را در اینجا، 816 00:43:54,000 --> 00:43:57,000 در این tableView: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 این که به این روش در هر سلول منفرد در داخل جدول خود را. 818 00:44:01,000 --> 00:44:03,000 چگونه آن را می دانم که چند بار به آن تماس بگیرید؟ 819 00:44:03,000 --> 00:44:06,000 خب، شما آن را در داخل تعداد ردیف در بخش گفت. 820 00:44:06,000 --> 00:44:08,000 ما قصد داریم تا این کار را در هر یک از سلول های ما تماس بگیرید. 821 00:44:08,000 --> 00:44:11,000 و در داخل از این است که در آن شما در واقع می توانید انجام کارهایی مانند 822 00:44:11,000 --> 00:44:16,000 مجموعه ای از متن و یا به شما بگویم آنچه که دکمه آبی کوچک در سمت راست می کند. 823 00:44:16,000 --> 00:44:19,000 الگوی برای گرفتن این سلول ها، ما قصد داریم تا با استفاده از این روش 824 00:44:19,000 --> 00:44:22,000 به نام dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> هدف-C است که در واقع به خوبی شناخته شده برای طول مضحک از نام روش خود را، 826 00:44:29,000 --> 00:44:32,000 و این است که واقعا مورد خوب در این مثال نقطه است. 827 00:44:32,000 --> 00:44:37,000 این روش این است که فقط می گوید که من می خواهم شما را به یک سلول به من بدهد. 828 00:44:37,000 --> 00:44:39,000 فقط یک چیز IOS. 829 00:44:39,000 --> 00:44:41,000 اگر شما چیزی مانند 100.000 آهنگ در آی پاد خود را 830 00:44:41,000 --> 00:44:45,000 آنچه در iOS نمی خواهند به انجام است که اختصاص 100.000 سلول، 831 00:44:45,000 --> 00:44:48,000 چرا که اگر شما در بالای لیست شما هستیم، آیا شما واقعا نیاز به تخصیص حافظه 832 00:44:48,000 --> 00:44:51,000 برای سلول است که 99،000 سطر پایین؟ 833 00:44:51,000 --> 00:44:55,000 نه، چون که شما در حال مرور شما می توانید نوع تخصیص را به عنوان شما را به همراه. 834 00:44:55,000 --> 00:44:57,000 این است که برای شما انجام می شود. 835 00:44:57,000 --> 00:44:59,000 شما لازم نیست که به نگرانی در مورد تمام چیزهای که عملکرد احمقانه است. 836 00:44:59,000 --> 00:45:02,000 همه شما می گویند شما به این روش dequeueReusableCellWithIdentifier، 837 00:45:02,000 --> 00:45:06,000 و این می گوید: خوب، اگر شما نیاز به من قصد دارم به ایجاد یک سلول جدید را برای شما. 838 00:45:06,000 --> 00:45:09,000 >> اما اگر شما در پایین جدول هستیم و شما در حال حاضر اختصاص داده است برخی از سلول های 839 00:45:09,000 --> 00:45:12,000 در بالای جدول است که شما واقعا نیاز به این زودی 840 00:45:12,000 --> 00:45:15,000 من قصد دارم به شما یکی از کسانی که به جای تخصیص یک را، 841 00:45:15,000 --> 00:45:17,000 و بنابراین این نگرانی عملکرد خوب است. 842 00:45:17,000 --> 00:45:21,000 شما لازم نیست که به تخصیص سلول های خود است. 843 00:45:21,000 --> 00:45:23,000 که می خواهم به شما یک سلول است. 844 00:45:23,000 --> 00:45:25,000 رفتن به بازگشت به یک شیء همراه است. 845 00:45:25,000 --> 00:45:28,000 هنگامی که شما جسم سلولی شما می توانید مسائل را به انجام آن است. 846 00:45:28,000 --> 00:45:32,000 شما می توانید متن از سلول را با این ویژگی به نام برچسب متن را تنظیم کنید. 847 00:45:32,000 --> 00:45:36,000 شما می توانید این فلش در سمت راست و یا برخی از چیزهای دیگر تصادفی 848 00:45:36,000 --> 00:45:41,000 با این ویژگی دیگر به نام accessoryType، و غیره و غیره. 849 00:45:41,000 --> 00:45:46,000 >> بیایید نگاهی به واقع اجرای نمایش جدول در حال حاضر. 850 00:45:46,000 --> 00:45:49,000 وقتی که من این پروژه را ایجاد 851 00:45:49,000 --> 00:45:53,000 به جای گفتن نرم افزار نمایش پست تنها من در واقع آمد در اینجا 852 00:45:53,000 --> 00:45:57,000 جزئیات نرم افزار استاد، و بنابراین اساسا این مربوط به برنامه پست الکترونیکی 853 00:45:57,000 --> 00:46:01,000 در iPad با مشخصات جدول در سمت چپ و پس از آن در سمت راست است. 854 00:46:01,000 --> 00:46:07,000 بر روی آی پاد و یا آی فون این است که رفتن به مربوط به نمایش تک جدول. 855 00:46:07,000 --> 00:46:10,000 این جایی که من کد استارتر من. 856 00:46:10,000 --> 00:46:13,000 >> اجازه دهید ابتدا نگاهی در داستانپردازی است. 857 00:46:13,000 --> 00:46:15,000 همه این ها برای من انجام شد، اساسا ایجاد شده است. 858 00:46:15,000 --> 00:46:18,000 این نوار پیمایش به من نشان داد که یک سلول به عنوان مثال می تواند شبیه، 859 00:46:18,000 --> 00:46:22,000 و من دو برابر این کار، کلیک کنید عنوان را تغییر دهید. 860 00:46:22,000 --> 00:46:25,000 هر گونه نگرانی UI دیگر من وجود دارد می توانید مسئولیت رسیدگی به. 861 00:46:25,000 --> 00:46:27,000 فایل هدر به نظر می رسد واقعا ساده است. 862 00:46:27,000 --> 00:46:30,000 به جای گفتن این UIViewController ما گفت: در حال حاضر این است که 863 00:46:30,000 --> 00:46:35,000 TableViewController، بنابراین ما می دانیم که ما می خواهیم به تمام کسانی که روش جدول تماس بگیرید. 864 00:46:35,000 --> 00:46:38,000 بعد من می خواهم برای ایجاد یک ویژگی است که به نمایندگی 865 00:46:38,000 --> 00:46:40,000 همه چیز در داخل جدول. 866 00:46:40,000 --> 00:46:43,000 این جدول در حال رفتن به خودسرانه نمایش 867 00:46:43,000 --> 00:46:46,000 یک لیست از میوه، و بنابراین من نیاز به ایجاد برخی از آرایه 868 00:46:46,000 --> 00:46:49,000 که در آن من می تواند میوه را وارد کنید. 869 00:46:49,000 --> 00:46:52,000 در داخل فایل اجرای من اولین چیزی که من می خواهم 870 00:46:52,000 --> 00:46:55,000 این است که من می خواهم تا مطمئن شوید که این آرایه مقداردهی اولیه می کنم. 871 00:46:55,000 --> 00:46:58,000 >> من گفتم alloc init انجام، ایجاد آرایه میوه من، 872 00:46:58,000 --> 00:47:03,000 و من اضافه کردن 4 چیزهایی که به آن، که یکی از آنها بسیار بحث برانگیز تر از 3. 873 00:47:03,000 --> 00:47:06,000 و در حال حاضر من یک آرایه از اندازه 4. 874 00:47:06,000 --> 00:47:08,000 ما آن را تکان دادن در CS50. 875 00:47:08,000 --> 00:47:11,000 من در حال حاضر مجموعه ای از اندازه 4. 876 00:47:11,000 --> 00:47:13,000 حالا من قصد دارم برای شروع به پاسخ دادن به این پرسش ها، و در واقع، 877 00:47:13,000 --> 00:47:16,000 زمانی که من این برنامه از این در حال حاضر برای من انجام شد. 878 00:47:16,000 --> 00:47:19,000 من مجبور نیستم که برای تایپ کردن شماره بخش در جدول مشاهده. 879 00:47:19,000 --> 00:47:22,000 آن در حال حاضر وجود دارد، و من در جاهای خالی پر است. 880 00:47:22,000 --> 00:47:24,000 چگونه بسیاری از بخش های را داشته باشم؟ 881 00:47:24,000 --> 00:47:26,000 یک. کلیه انجام می شود. 882 00:47:26,000 --> 00:47:28,000 چگونه بسیاری از ردیف داشته باشم؟ 883 00:47:28,000 --> 00:47:31,000 خوب، من یک ردیف برای هر میوه، به طوری که این تعداد 884 00:47:31,000 --> 00:47:34,000 یک ملک از هر آرایه است که می گوید: چقدر بزرگ است آن است؟ 885 00:47:34,000 --> 00:47:36,000 که چگونه بسیاری از ردیف من. 886 00:47:36,000 --> 00:47:42,000 در نهایت، من نیاز به گفتن چه هر سلول شبیه؟ 887 00:47:42,000 --> 00:47:46,000 من قصد دارم برای گفتن dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> باز هم، این در حال حاضر برای من بود نوشته شده است. 889 00:47:48,000 --> 00:47:51,000 من برای انجام این کار خودم، و من می خواهم به عقب بر گردیم 890 00:47:51,000 --> 00:47:54,000 این سلول در این مکان. 891 00:47:54,000 --> 00:47:57,000 به یاد داشته باشید که ما خواستار این روش در هر سلول واحد، 892 00:47:57,000 --> 00:48:01,000 و این بحث در اینجا، این استدلال indexPath، 893 00:48:01,000 --> 00:48:03,000 می گوید چه ردیف من شوید. 894 00:48:03,000 --> 00:48:05,000 اگر من می گویم indexPath.row را در اینجا 895 00:48:05,000 --> 00:48:09,000 این خواهد بود 0، سپس آن را به 1، و سپس آن خواهد بود 2، و این است، بنابراین من می دانم 896 00:48:09,000 --> 00:48:11,000 چه سلول من در حال نمایش است. 897 00:48:11,000 --> 00:48:15,000 من می خواهم به تنظیم متن از سلول با استفاده از این ویژگی textLabel 898 00:48:15,000 --> 00:48:19,000 به داخل آرایه میوه من و 899 00:48:19,000 --> 00:48:21,000 شی مربوط به هر سطر است. 900 00:48:21,000 --> 00:48:24,000 اگر این است که یک رشته است، من در حال حاضر تنظیم 901 00:48:24,000 --> 00:48:28,000 ملک متن را به یک رشته است. 902 00:48:28,000 --> 00:48:30,000 من می توانم یک چیز دیگر را انجام دهید. 903 00:48:30,000 --> 00:48:32,000 من همچنین می توانید یک event handler را در هر یک از سلول ها برای ثبت نام اینجا را کلیک کنید 904 00:48:32,000 --> 00:48:35,000 تا زمانی که هر یک از این سلول من شیر 905 00:48:35,000 --> 00:48:39,000 این didSelectRowAtIndexPath، این است که رفتن برای من نامیده می شود، 906 00:48:39,000 --> 00:48:42,000 بنابراین به سادگی با تعریف این من هم اکنون می توانید آنچه اتفاق می افتد که مسئولیت رسیدگی به 907 00:48:42,000 --> 00:48:46,000 هنگامی که یک سلول شیر، و دوباره، ما در حال گذر است که در آن سلول های شنود گذاشته شد 908 00:48:46,000 --> 00:48:50,000 به طوری که ما می توانیم این کنترل رویداد یکسان برای تمام سلول های ما استفاده نمایید. 909 00:48:50,000 --> 00:48:53,000 >> باز هم، این چیزی IOS در انجام این کار برای من است. 910 00:48:53,000 --> 00:48:55,000 بیایید یکی دیگر از پنجره مزاحم 911 00:48:55,000 --> 00:48:59,000 که به سادگی می گوید: چیزی که در آن است که چیزی را برداشت 912 00:48:59,000 --> 00:49:04,000 رفتن به شی ردیف. 913 00:49:04,000 --> 00:49:10,000 وقتی که من برای اجرای این، من قصد دارم به این مشخصات جدول زیبا 914 00:49:10,000 --> 00:49:14,000 با یک ردیف برای هر یک از این میوه، و اگر یک من شیر 915 00:49:14,000 --> 00:49:16,000 آن را به من می گوید چه اتفاقی افتاده است. 916 00:49:16,000 --> 00:49:21,000 را حس؟ 917 00:49:21,000 --> 00:49:24,000 اجازه ساخت یک کمی پیچیده تر از برنامه، 918 00:49:24,000 --> 00:49:28,000 به همان اندازه که نوشتن مطالب لازم است شما برداشت گوجه فرنگی است. 919 00:49:28,000 --> 00:49:31,000 بخش خوبی در مورد storyboarding 920 00:49:31,000 --> 00:49:35,000 آن را نه تنها به ما کمک می کند صفحه نمایش طراحی جداگانه، 921 00:49:35,000 --> 00:49:38,000 آن را نیز به ما کمک کراوات با هم کل برنامه ما، 922 00:49:38,000 --> 00:49:42,000 برنامه نهایی ما خواهید بود ساختمان این خواننده خوب اخبار ورزشی، 923 00:49:42,000 --> 00:49:45,000 و پس از آن رفتن به صفحه نمایش های چندگانه، و من در واقع می تواند نمایندگی 924 00:49:45,000 --> 00:49:48,000 هر یک از این صفحه نمایش های متعدد در داستانپردازی، 925 00:49:48,000 --> 00:49:52,000 و من می توانم زوم کنید و ببینید برنامه من از یک سطح بالا. 926 00:49:52,000 --> 00:49:55,000 >> به منظور ایجاد یک عنصر درون جدیدی از داستانپردازی من 927 00:49:55,000 --> 00:49:59,000 این واقعا ساده در داخل سازنده رابط. 928 00:49:59,000 --> 00:50:01,000 اگر من می خواهم برای اضافه کردن یکی دیگر از صفحه نمایش به این، برای مثال، 929 00:50:01,000 --> 00:50:06,000 من برای اولین بار می توانید از زوم با زوم خرج کردن که اپل خیلی دوست دارد، 930 00:50:06,000 --> 00:50:09,000 و پایین در اینجا قبل از من برای دکمه ی جستجو 931 00:50:09,000 --> 00:50:12,000 و من کشیدن و رها کردن یک دکمه 932 00:50:12,000 --> 00:50:15,000 اگر من می خواهم برای ایجاد یک صفحه جدید در واقع من فقط می توانید با کشیدن و رها کردن 933 00:50:15,000 --> 00:50:19,000 کنترل کل نمایش، بنابراین اگر من را انتخاب کنید، آن را بکشید در اینجا، 934 00:50:19,000 --> 00:50:23,000 هی، یکی دیگر از صفحه نمایش وجود دارد، و بنابراین در حال حاضر با استفاده از این فایل همان استوری بورد 935 00:50:23,000 --> 00:50:26,000 من می توانم از صفحه نمایش در داخل برنامه من، و من می توانم زوم 936 00:50:26,000 --> 00:50:28,000 و ببینید که چگونه آنها در تعامل است. 937 00:50:28,000 --> 00:50:32,000 این امکان تعامل است. 938 00:50:32,000 --> 00:50:36,000 روشی که در آن تعامل این 2 صفحه نمایش است که روابط را تعریف کنید. 939 00:50:36,000 --> 00:50:39,000 شما اساسا می تواند این صفحه، می گویند هنگامی که شما این دکمه را فشار دهید، 940 00:50:39,000 --> 00:50:42,000 من می خواهم شما را به اسلاید را به این صفحه جدید. 941 00:50:42,000 --> 00:50:44,000 این بدان معناست که در این نوع رابطه وجود دارد 942 00:50:44,000 --> 00:50:46,000  صفحه اول و صفحه دوم. 943 00:50:46,000 --> 00:50:49,000 شما اساسا باید یک پیکان از آن دکمه به صفحه دوم 944 00:50:49,000 --> 00:50:53,000 و گفت که زمانی که این دکمه را فشار می دهید که جایی که من می خواهم به. 945 00:50:53,000 --> 00:50:57,000 درست مثل ما کنترل کلیک کرده و برای تعریف این رسانه کشیده میشوند 946 00:50:57,000 --> 00:51:01,000 ما قصد داریم برای انجام کار مشابه را برای تعریف این segues. 947 00:51:01,000 --> 00:51:05,000 >> خواهیم کرد به عنوان مثال برای آن را مشاهده کنید، و ما در واقع قبل از انتقال 948 00:51:05,000 --> 00:51:08,000 از یک صفحه نمایش خود را به دیگری در iOS به اندازه کافی خوب است به این روش 949 00:51:08,000 --> 00:51:11,000 به نام prepareForSegue، و این جایی است که ما می توانیم شروع به 950 00:51:11,000 --> 00:51:14,000 ارسال داده ها از یک برنامه به دیگری. 951 00:51:14,000 --> 00:51:17,000 در این مثال ما قصد داریم به آن نگاه اساسا به ما اجازه می دهد 952 00:51:17,000 --> 00:51:20,000 برای فیلتر کردن تیم بیس بال لیگ ها و تقسیمات است. 953 00:51:20,000 --> 00:51:23,000 هنگامی که من یک لیگ را انتخاب کنید، به عنوان مثال، من می خواهم به انتقال 954 00:51:23,000 --> 00:51:25,000 به صفحه بعدی من جایی که من می توانید تمام بخش های نمایش 955 00:51:25,000 --> 00:51:27,000 در آن لیگ و یا تیم های مختلف. 956 00:51:27,000 --> 00:51:31,000 من نیاز به ارسال به که روی صفحه نمایش که تیم شما باید نمایش داده است. 957 00:51:31,000 --> 00:51:35,000 برای انجام این کار است که من قصد دارم را به استفاده از این روش در اینجا. 958 00:51:35,000 --> 00:51:39,000 >> در نهایت، فقط به طور تصادفی نقطه در IOS. 959 00:51:39,000 --> 00:51:41,000 اگر شما می خواهید برای ذخیره داده ها این چیزی که به نام داده های هسته ای وجود دارد، 960 00:51:41,000 --> 00:51:44,000 است که در واقع از نوع پیچیده برای کار با. 961 00:51:44,000 --> 00:51:47,000 شما همچنین می توانید SQL برای ذخیره داده ها استفاده کنید، 962 00:51:47,000 --> 00:51:51,000 که، باز هم، خوب است، اما نوع در سمت پیچیده تر به کار با، 963 00:51:51,000 --> 00:51:55,000 اما در iOS نیز پشتیبانی از این چیزها واقعا سرد به نام لیست اموال، 964 00:51:55,000 --> 00:52:00,000 و یک لیست اموال است فقط یک فایل که نشان دهنده جفت ارزش کلیدی است. 965 00:52:00,000 --> 00:52:03,000 یک لیست از کلید تعریف کنید، و به شما می گویند این کلید برای رفتن به یک آرایه. 966 00:52:03,000 --> 00:52:06,000 این کلید را به عنوان یک رشته، و اساسا هر چیزی که شما می توانید انجام دهید 967 00:52:06,000 --> 00:52:10,000 در JSON شما می توانید انجام دهید از لیست اموال داخل، 968 00:52:10,000 --> 00:52:14,000 و بنابراین این واقعا سادگی اجازه می دهد تا ما را به برخی از داده ها کار می کنند. 969 00:52:14,000 --> 00:52:18,000 به عنوان مثال، من این Teams.plist که من ایجاد. 970 00:52:18,000 --> 00:52:22,000 من ایجاد یک فایل جدید plist، و من می توانم تمرین کردن. 971 00:52:22,000 --> 00:52:26,000 این است که یک فرهنگ لغت، فرهنگ لغت، این رشته ها، 972 00:52:26,000 --> 00:52:30,000 و بنابراین این یک نمایش گرافیکی خوبی از یک سند JSON است 973 00:52:30,000 --> 00:52:33,000 یا فقط مجموعه ای از جفت ارزش کلیدی، 974 00:52:33,000 --> 00:52:37,000 و بنابراین این داده ها این است که من کار با داخل برنامه من است. 975 00:52:37,000 --> 00:52:40,000 >> برای اولین بار در اینجا. در حال حاضر فایل های بسیار بیشتری در حال حاضر. 976 00:52:40,000 --> 00:52:44,000 اما اجازه دهید برای اولین بار در اینجا به داستانپردازی است. 977 00:52:44,000 --> 00:52:48,000 داستانپردازی در اینجا اگر من می توانید با زوم کردن 978 00:52:48,000 --> 00:52:51,000 ما در حال حاضر می توانید که این جریان برنامه من را ببینید. 979 00:52:51,000 --> 00:52:53,000 من اول قرار را بر روی این صفحه شروع. 980 00:52:53,000 --> 00:52:55,000 من قصد دارم برای تمرین کردن به این صفحه نمایش، 981 00:52:55,000 --> 00:52:58,000 و من قصد دارم برای تمرین کردن به این صفحه، و ما در اینجا می توانید ببینید که اگر من نوع 982 00:52:58,000 --> 00:53:04,000 حرکت یکی از این اطراف ما را به این فلش را از اینجا رفتن به اینجا، 983 00:53:04,000 --> 00:53:08,000 و راه که فلش را تعریف من بود اگر من در کمی زوم، 984 00:53:08,000 --> 00:53:12,000 و اگر من به به کنترل این دیدگاه، 985 00:53:12,000 --> 00:53:16,000 و در اینجا یک سلول است، و من می خواهم بگویم که وقتی که یک سلول شیر 986 00:53:16,000 --> 00:53:18,000 من می خواهم شما را به اسلاید خود را به دیگری روی صفحه نمایش است. 987 00:53:18,000 --> 00:53:21,000 من به سادگی می تواند به پایین نگه دارید کنترل، 988 00:53:21,000 --> 00:53:26,000 حرکت بیش از یک کمی، پایین نگه داشتن کنترل، این سلول را بکشید و اجازه دهید به. 989 00:53:26,000 --> 00:53:30,000 >> و در اینجا ما می گویند آن انتقال است که شما مایل به استفاده از چه؟ 990 00:53:30,000 --> 00:53:32,000 آیا شما می خواهید به استفاده از چیزی که کشویی است که به نام فشار؟ 991 00:53:32,000 --> 00:53:34,000 آیا می خواهید به اسلاید کردن از پایین؟ 992 00:53:34,000 --> 00:53:36,000 که به نام معین است. 993 00:53:36,000 --> 00:53:40,000 و یک بار یکی از این من کلیک کنید، آن را به منظور جلب این فلش برای من، 994 00:53:40,000 --> 00:53:44,000 و این بدان معناست که من در واقع به کار گرفته شده چه اتفاقی می افتد زمانی که من با فشار این دکمه گرافیکی. 995 00:53:44,000 --> 00:53:48,000 من هیچ کد در واقع از یک صفحه نمایش خود را به یکی از اسلاید نوشتن نیست. 996 00:53:48,000 --> 00:53:51,000 من تعریف این بصری سازنده رابط در داخل. 997 00:53:51,000 --> 00:53:55,000 اگر من در این فلش کلیک کنید، ما می توانید ببینید که من به این چیزی که یک نام است. 998 00:53:55,000 --> 00:53:59,000 من نام آن را showDivisions است، و این به طوری که من می توانم می دانم 999 00:53:59,000 --> 00:54:03,000 انتقال به رخ می دهند، و خواهیم دید که چرا فقط در یک ثانیه است. 1000 00:54:03,000 --> 00:54:06,000 که چگونه من سیمی تا صفحه نمایش های مختلف در برنامه من است. 1001 00:54:06,000 --> 00:54:09,000 اگر این فشار دهید، به عنوان مثال، به جای مشاهده جدول بودند، 1002 00:54:09,000 --> 00:54:11,000 من می توانم بر روی دکمه کلیک کنید، کنترل را بکشید را به صفحه بعد، 1003 00:54:11,000 --> 00:54:16,000 و این که چگونه من می توانم ناوبری که در راه انجام دهد. 1004 00:54:16,000 --> 00:54:19,000 >> واقعا به سرعت، اگر ما به MasterViewController آمده، 1005 00:54:19,000 --> 00:54:22,000 باز، ما را به سادگی با رفتن به تعریف یک لیست از چیزهایی 1006 00:54:22,000 --> 00:54:26,000 خواهد شد که در نمایش جدول نمایش داده می شود. 1007 00:54:26,000 --> 00:54:29,000 در اینجا من گفت: من می خواهم شما را به آن فایل plist، 1008 00:54:29,000 --> 00:54:32,000 و من می خواهم شما را به آن بار را به یک فرهنگ لغت، 1009 00:54:32,000 --> 00:54:35,000 و هنگامی که شما باید این فرهنگ لغت، من قصد دارم برای پاسخ به این پرسش دوباره. 1010 00:54:35,000 --> 00:54:37,000 در اینجا تعدادی از بخش. 1011 00:54:37,000 --> 00:54:41,000 یک، یک ردیف برای هر لیگ و متن از هر سلول وجود دارد 1012 00:54:41,000 --> 00:54:46,000 باید یکی از اولین، اولین لیگ، لیگ دوم، و به همین ترتیب. 1013 00:54:46,000 --> 00:54:51,000 در نهایت، من قصد دارم برای استفاده از این روش است که ما فقط prepareForSegue به نام دیدم، 1014 00:54:51,000 --> 00:54:54,000 و این روش که به اخراج می شود وقتی که من کلیک کنید 1015 00:54:54,000 --> 00:54:57,000 یکی از کسانی که ردیف و در نتیجه فعال که انتقال 1016 00:54:57,000 --> 00:54:59,000 که من با فلش. 1017 00:54:59,000 --> 00:55:02,000 این می گوید که من می توانم چندین 1018 00:55:02,000 --> 00:55:05,000 روابط از یک صفحه نمایش خود را به دیگری. 1019 00:55:05,000 --> 00:55:08,000 اگر من 2 دکمه و هر دکمه شما را به یک صفحه نمایش های مختلف 1020 00:55:08,000 --> 00:55:10,000 من قصد دارم به 2 segues، (1) برای هر فشار دهید. 1021 00:55:10,000 --> 00:55:14,000 اما این prepareForSegue است، دوباره، رفتن به مورد استفاده مجدد قرار 1022 00:55:14,000 --> 00:55:17,000 برای هر کدام از روابط مختلف، به طوری که بدان معنی است که من نیاز به یک راه 1023 00:55:17,000 --> 00:55:21,000 از شناسایی اگر دکمه را فشار می دهید و یا دکمه دوم را فشار دهید. 1024 00:55:21,000 --> 00:55:25,000 >> به یاد داشته باشید زمانی که خودم رو دادم به اش Segue نام، این showDivisions 1025 00:55:25,000 --> 00:55:29,000 این که چگونه من در حال حاضر می دانیم که این اش Segue که فعال شد. 1026 00:55:29,000 --> 00:55:32,000 من می خواهم به انجام این کار این است که من می خواهم بگویم 1027 00:55:32,000 --> 00:55:35,000 من می خواهم برای کشف کردن آنچه که من فقط، 1028 00:55:35,000 --> 00:55:38,000 و به طوری که برای دریافت، من می توانم بگویم من می خواهم indexPath برای ردیف انتخاب شده، 1029 00:55:38,000 --> 00:55:42,000 به یاد داشته باشید indexPath فقط می گوید که در آن من فقط کلیک، 1030 00:55:42,000 --> 00:55:47,000 و پس از آن من می خواهم بگویم من می خواهم به شکل جایی که من قصد دارم. 1031 00:55:47,000 --> 00:55:50,000 این destinationViewController، که اموال اش Segue. 1032 00:55:50,000 --> 00:55:53,000 که روی صفحه نمایش من قصد دارم، 1033 00:55:53,000 --> 00:55:56,000 بنابراین من می دانم که روی صفحه نمایش من قصد دارم به نام DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 چون من ایجاد می شود که کلاس، 1035 00:55:59,000 --> 00:56:02,000 و بنابراین در حال حاضر اگر من می گویم d.divisions 1036 00:56:02,000 --> 00:56:06,000 من در حال حاضر در راه اموال کنترل کننده دیدگاه من در مورد رفتن به. 1037 00:56:06,000 --> 00:56:10,000 این است که چگونه من ارسال اطلاعات از یک صفحه به صفحه دیگر. 1038 00:56:10,000 --> 00:56:13,000 >> فقط به دنبال در این DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 شما در اینجا می توانید ببینید که در فایل ساعت 1040 00:56:16,000 --> 00:56:20,000 این است که اختلافات مالکیت وجود دارد، و این چیزی است که من اساسا جمعیت، 1041 00:56:20,000 --> 00:56:25,000 به طوری که چگونه من می دانم که من نمایش بخش های مربوط به 1042 00:56:25,000 --> 00:56:28,000 لیگ که من کلیک، و دوباره، 1043 00:56:28,000 --> 00:56:31,000 مشاهده جدول واقعی به نظر می رسد تا حد زیادی یکسان است، فقط پاسخ آن 1044 00:56:31,000 --> 00:56:34,000 3 ساده سوالات و همچنین شناسایی 1045 00:56:34,000 --> 00:56:37,000 چه اتفاقی می افتد زمانی که شما به صفحه بعدی حرکت می کند. 1046 00:56:37,000 --> 00:56:40,000 فقط یک زن و شوهر از چیزهای دیگر در اینجا. 1047 00:56:40,000 --> 00:56:43,000 شما در بالا متوجه است که در اینجا به جای گفتن # شامل 1048 00:56:43,000 --> 00:56:45,000 من در حال حاضر گفت: واردات. 1049 00:56:45,000 --> 00:56:47,000 این فقط یک چیز هدف-C است. 1050 00:56:47,000 --> 00:56:52,000 واردات اساسا نسخه بهتر عبارتند از، 1051 00:56:52,000 --> 00:56:57,000 و به عنوان مثال، ما نیاز به دانستن آنچه در این کلاس است. 1052 00:56:57,000 --> 00:57:00,000 بنابراین من فقط نمی توان گفت DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 اگر ما داخل standardio.c فایل C hashtag 1054 00:57:05,000 --> 00:57:07,000 کامپایلر تا به حال هیچ ایده چه چیزی printf بود. 1055 00:57:07,000 --> 00:57:12,000 به طور مشابه، اگر من DivisionsViewController وارد کند 1056 00:57:12,000 --> 00:57:16,000 کامپایلر واقعا هیچ ایده چه DivisionsViewController است. 1057 00:57:16,000 --> 00:57:19,000 فقط اطمینان حاصل کنید که در داخل متفاوت است. فایل های خود را متر شما مطمئن شوید که به واردات 1058 00:57:19,000 --> 00:57:25,000 فایل های مربوطه. ساعت به طوری که کامپایلر نمی داند چه خبر است. 1059 00:57:25,000 --> 00:57:31,000 >> در نهایت، آنچه اپل در نهایت انجام می دهد، نشان دادن برخی از داده ها با استفاده از مشاهده وب سایت 1060 00:57:31,000 --> 00:57:35,000 و به همین ترتیب مشاهده وب سایت هدف که در آن شما می توانید جاسازی شده است 1061 00:57:35,000 --> 00:57:37,000 مرورگر وب کم در درون برنامه شما. 1062 00:57:37,000 --> 00:57:40,000 همه شما باید انجام دهید این است که URL به مرورگر وب خود را عرضه، 1063 00:57:40,000 --> 00:57:43,000 بنابراین من می خواهم برای رفتن به mlb.mlb.com، 1064 00:57:43,000 --> 00:57:46,000 و این است که چگونه من می توانم از صفحه اصلی برای دسترسی به هر یک از تیم، 1065 00:57:46,000 --> 00:57:49,000 و به همین ترتیب با عبور در این URL 1066 00:57:49,000 --> 00:57:52,000 مشاهده وب سایت می تواند این کار را برای من نمایش داده شود، و من در اطراف می توانید فهرست، 1067 00:57:52,000 --> 00:58:01,000 و شبیه ساز است در استفاده که یکی. 1068 00:58:01,000 --> 00:58:03,000 در حال حاضر این آمد از plist من. 1069 00:58:03,000 --> 00:58:07,000 اگر این من کلیک کنید این هم از plist من آمد، و این کشویی به کار گرفته شد 1070 00:58:07,000 --> 00:58:09,000 با تعریف کسانی که segues. 1071 00:58:09,000 --> 00:58:12,000 از این روی من و یکی دیگر، 1072 00:58:12,000 --> 00:58:15,000 و در حال حاضر در اینجا UIWebView من است، پس فقط می خواهم که 1073 00:58:15,000 --> 00:58:19,000 در اینجا این وب سایت برای URL که من فقط جاسازی شده، 1074 00:58:19,000 --> 00:58:21,000 و من مجبور نیستم که هر چیزی دیوانه که مسئولیت رسیدگی به. 1075 00:58:21,000 --> 00:58:24,000 این است که چگونه می توان به نشان دادن یک صفحه وب است. 1076 00:58:24,000 --> 00:58:27,000 چیزهایی مثل این دکمه «بازگشت» در اینجا نیز به من داده 1077 00:58:27,000 --> 00:58:33,000 کاملا به صورت رایگان به این دلیل من تعریف این روابط با استفاده از segues. 1078 00:58:33,000 --> 00:58:37,000 >> هر گونه سؤال؟ آره. 1079 00:58:37,000 --> 00:58:40,000 [دانشجو] بنابراین هنگام استفاده از alloc، شما را به هر چیزی رایگان را هرگز؟ 1080 00:58:40,000 --> 00:58:43,000 دقیقا، زمانی که با شما تماس alloc و init شما را نداشته باشند به این برنامه رایگان است. 1081 00:58:43,000 --> 00:58:46,000 IOS است که مسئولیت رسیدگی به همه که برای شما. 1082 00:58:46,000 --> 00:58:51,000 این شگفت انگیز است، و شما هیچ قوانین شکستن نیست. آره. 1083 00:58:51,000 --> 00:58:54,000 [دانشجو] اگر شما به تیم است که می تواند بر روی صفحه نمایش جا داد، 1084 00:58:54,000 --> 00:58:58,000 آن را به طور خودکار گزینه اسکرول، و یا این است که چیزی است که شما نیاز به اضافه کردن؟ 1085 00:58:58,000 --> 00:59:01,000 دقیقا، اگر من تا به حال تیم های بیشتر، به عنوان مثال، آن را به طور خودکار خواهد بود که مسئولیت رسیدگی به 1086 00:59:01,000 --> 00:59:04,000 اسکرول برای من، و تمام نگرانی های عملکرد 1087 00:59:04,000 --> 00:59:08,000 با جدول بزرگ نیز کاملا برای من به کار گرفته شده است. 1088 00:59:08,000 --> 00:59:11,000 >> سوال دیگر؟ 1089 00:59:11,000 --> 00:59:13,000 همه این کد رفتن به ارسال شده است. 1090 00:59:13,000 --> 00:59:16,000 ما به نوعی بیش از یک کمی از جزئیات جزئی تر یشمی، 1091 00:59:16,000 --> 00:59:19,000 اما چیزهایی مثل تعیین برخی از خواص به مشاهده وب سایت 1092 00:59:19,000 --> 00:59:22,000 فقط چیزهایی که شما می توانید در حال مشاهده مستندات اپل، 1093 00:59:22,000 --> 00:59:24,000 است که واقعا، واقعا سادگی گذاشته شده است. 1094 00:59:24,000 --> 00:59:27,000 آنها بسیاری از برنامه های نمونه و مثال استفاده 1095 00:59:27,000 --> 00:59:34,000 از API های مختلف، پس قطعا مطالعه کردن اگر شما می توانید. 1096 00:59:34,000 --> 00:59:36,000 فقط برخی از پیوند های مفید شما ممکن است بخواهید نگاهی به. 1097 00:59:36,000 --> 00:59:38,000 اینها برخی از راهنماهای مستندات مفید است. 1098 00:59:38,000 --> 00:59:41,000 URL های عظیم، به طوری که آنها در حال کوتاه. 1099 00:59:41,000 --> 00:59:44,000 این یکی از اولین کتابخانه کامل از اسناد است. 1100 00:59:44,000 --> 00:59:46,000 میله جستجو کمی وجود دارد، بنابراین اگر شما شروع را فشار دهید تایپ 1101 00:59:46,000 --> 00:59:50,000 آن شروع خواهد شد به شما تمام اطلاعات در مورد همه چیز شما می توانید با یک دکمه انجام دهید. 1102 00:59:50,000 --> 00:59:53,000 من همچنین شامل راهنمای برنامه نویسی جدول مشاهده. 1103 00:59:53,000 --> 00:59:56,000 این دسته ها نمایش ها در جدول با جزئیات بسیار بیشتر. 1104 00:59:56,000 --> 01:00:00,000 چگونه به انجام کارهای شبیه به صورت پویا اضافه کردن سلول سلول و یا ویرایش و یا حذف آنها. 1105 01:00:00,000 --> 01:00:02,000 >> تعداد زیادی از برنامه های نمونه از اپل وجود دارد که شما را چگونه به انجام این کار نشان می دهد، 1106 01:00:02,000 --> 01:00:05,000 و در نهایت، این یکی از آخرین دستورالعمل های رابط انسان است، 1107 01:00:05,000 --> 01:00:09,000 و این است که اساسا بحث برخی از اجزای UI، 1108 01:00:09,000 --> 01:00:12,000 چیزهایی مثل یک دکمه که 4 پیکسل با اندازه 4 پیکسل را ندارد. 1109 01:00:12,000 --> 01:00:15,000 این یک ایده بد است، و خیلی چیزهای دیگر که اپل می خواهد شما را به انجام 1110 01:00:15,000 --> 01:00:18,000 برای تشویق به طراحی خوب است. 1111 01:00:18,000 --> 01:00:23,000 >> هر تاریخ و زمان آخرین سوالات قبل از ما به پایان برساند؟ 1112 01:00:23,000 --> 01:00:27,000 همه حق است، قطعا به we're رفتن به برچسب های ویژه در مورد احساس راحتی کنید. 1113 01:00:27,000 --> 01:00:30,000 خواهیم در iOS یکی است، بنابراین قطعا برای استفاده که احساس راحتی کنید. 1114 01:00:30,000 --> 01:00:34,000 اگر می خواهید با همکلاسی های خود را به کار بر روی پروژه 1115 01:00:34,000 --> 01:00:37,000 یا کمک به کشف کردن برخی از مسائل تصادفی در iOS 1116 01:00:37,000 --> 01:00:40,000 احساس رایگان به من ایمیل، و قطعا همه آنلاین کد زیرا را مطالعه کردن 1117 01:00:40,000 --> 01:00:43,000 تنها در زمان به نفع ما در نوع بیش از بیشتر یشمی 1118 01:00:43,000 --> 01:00:45,000 جزئیات دقیقتر دانه چیزها می شود. 1119 01:00:45,000 --> 01:00:47,000 اما اگر نه، پس موفق باشید بر روی پروژه های خود را در iOS، و من امیدوارم که ما 1120 01:00:47,000 --> 01:00:53,000 هجوم بزرگی از برنامه در فروشگاه App. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]