1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: ברוכים באים לראות סמינר CS50 - 3 00:00:09,800 --> 00:00:11,630 מבוא לiOS. 4 00:00:11,630 --> 00:00:13,290 תודה לכולכם שבאתם. 5 00:00:13,290 --> 00:00:16,610 אני מקווה שאתה מתרגש בדיוק כמו כמו שאני על iOS. 6 00:00:16,610 --> 00:00:22,300 בשנה שעברה, לקחתי CS50 כמו בכיתה י ', ואני בעצם למדתי iOS עבורי 7 00:00:22,300 --> 00:00:23,490 פרויקט גמר. 8 00:00:23,490 --> 00:00:26,350 וזה היה די - 9 00:00:26,350 --> 00:00:30,530 טוב, זה לא היה קל, אבל יש הרבה הדרכות תמיכה מקוונת. 10 00:00:30,530 --> 00:00:33,760 ואני באמת מקווה שעם זה סמינר, אני אתן לך חבר 'ה בראש 11 00:00:33,760 --> 00:00:36,750 להתחיל בפיתוח iOS 12 00:00:36,750 --> 00:00:40,490 >> לכן, במונחים של פיתוח iOS, יש שני דברים עיקריים שאנחנו 13 00:00:40,490 --> 00:00:42,090 רוצה לכסות היום. 14 00:00:42,090 --> 00:00:43,290 ראשית, את השפה - 15 00:00:43,290 --> 00:00:46,650 השפה הולכת להיות ב Objective-C. למעשה אנחנו שומעים 16 00:00:46,650 --> 00:00:47,750 משהו ממש מרגש. 17 00:00:47,750 --> 00:00:51,500 אז, אתה יכול להצטרף לכולו אפל קהילה של מפתחים ולבנות כמה 18 00:00:51,500 --> 00:00:52,940 אפליקציות ממש אחלה. 19 00:00:52,940 --> 00:00:58,670 >> כמו כן, 7 iOS הוא יפה, בתקווה, לחלק מכם. 20 00:00:58,670 --> 00:01:01,130 אבל זה שנוי במחלוקת, אני יודע. 21 00:01:01,130 --> 00:01:05,349 ובעיקר, מה שאני רוצה לעשות הוא מדריך שלך דרך Objective-C, וגם 22 00:01:05,349 --> 00:01:10,650 Xcode, שהיא משולבת סביבת פיתוח שתהיה 23 00:01:10,650 --> 00:01:13,460 עבודה בעבור iOS. 24 00:01:13,460 --> 00:01:19,140 >> וכך, רק מילה על Objective-C. בעיקרון, זה בדיוק אותו הדבר כמו C, 25 00:01:19,140 --> 00:01:22,790 אבל עם הרבה דברים אחרים. 26 00:01:22,790 --> 00:01:27,710 וכך, יותר חמור, זה בעצם של ג להגדיר סופר אז כל דבר שאתה 27 00:01:27,710 --> 00:01:32,280 יכול לעשות ב-C עכשיו, שהוא בעצם רוצה pset 0 עד 6, אתה 28 00:01:32,280 --> 00:01:34,170 יכול לעשות בObjective-C. 29 00:01:34,170 --> 00:01:38,620 >> אז, לא מרגיש פחד על זה חדש שפה שבה אתה הולך ללמוד. 30 00:01:38,620 --> 00:01:42,120 אתה כבר כיסה הרבה ממנו, כי כל מה שעשית C האחרון 31 00:01:42,120 --> 00:01:45,880 סמסטר, אלא שעכשיו אתה הולך יש לי הרבה יותר לעבוד איתו. 32 00:01:45,880 --> 00:01:49,270 ואני רק הולך להוביל אותך דרך כמה דוגמאות כדי להדגיש כמה 33 00:01:49,270 --> 00:01:53,920 של מפתח ההבדלים שמצאתי היו באמת חשוב כאשר נודע לי 34 00:01:53,920 --> 00:01:57,180 Objective-C בשנה שעברה. 35 00:01:57,180 --> 00:02:00,910 >> טוב, בעצם, כל כך, הנקודה אחרת הוא, Objective-C הוא, כמובן, 36 00:02:00,910 --> 00:02:02,200 מונחה עצמים. 37 00:02:02,200 --> 00:02:06,340 ונדברנו קצת על מה זה אומר מאוחר יותר. 38 00:02:06,340 --> 00:02:11,340 בעיקרון, זה כמו איך אתה עבד עם structs בpset האחרון, עם 39 00:02:11,340 --> 00:02:13,360 צמתים ואחרים דומים דברים כאלה. 40 00:02:13,360 --> 00:02:17,110 למעט, בObjective-C, כל מה שהוא אובייקט, ואתה הולך להיות 41 00:02:17,110 --> 00:02:20,720 עובר סביב מצביעים לאובייקטים ולא הערכים עצמם. 42 00:02:20,720 --> 00:02:25,050 אז, זה רק משהו חשוב כדי לזכור. 43 00:02:25,050 --> 00:02:29,140 >> אז, למה שלא נתחיל עם כמה הבדלים בתחביר בין C ו 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 אני רוצה להדגיש # כולל, אתה יודע, io.h הסטנדרטי ב-C ו-C + +, עם 46 00:02:38,310 --> 00:02:44,030 גרסת Objective-C של זה, אשר הוא # יבוא, ואז איזה 47 00:02:44,030 --> 00:02:44,790 קובץ כותרת. 48 00:02:44,790 --> 00:02:48,165 במקרה זה, יהיה זה UIKit, מכיר אותך, לחתוך UIKit.h. 49 00:02:48,165 --> 00:02:53,560 זה יכול להיות גם, אתם יודעים, MKMapview לך לקצץ MKMapview.h אם אתה רוצה 50 00:02:53,560 --> 00:02:56,370 לעשות, כמו, מפה פנימית של האפליקציה שלך. 51 00:02:56,370 --> 00:02:57,110 דברים דומים כאלה. 52 00:02:57,110 --> 00:03:01,250 >> לכן, הדבר החשוב הוא כולל כעת השתנה ליבוא. 53 00:03:01,250 --> 00:03:04,340 אבל הרעיון עדיין נשאר. 54 00:03:04,340 --> 00:03:10,460 אתה הולך להיות יבוא כלשהו של קובץ כותרת לתכנית שלך. 55 00:03:10,460 --> 00:03:14,550 >> אני גם רוצה להדגיש את ההבדל בין printf וNSLog. 56 00:03:14,550 --> 00:03:19,760 עם זאת, כפי שאמרנו קודם לכן, Objective-C הוא סופר מערכת קפדנית של 57 00:03:19,760 --> 00:03:22,800 C, מה שאומר שprintf קיים בObjective-C, יותר מדי. 58 00:03:22,800 --> 00:03:24,340 אבל, רוב האנשים לא משתמשים בזה. 59 00:03:24,340 --> 00:03:28,245 רוב האנשים משתמשים בזה כי זה NSLog נותן לך חותמת זמן, ואנו רואים 60 00:03:28,245 --> 00:03:29,780 אותו בפעולה מאוחר יותר. 61 00:03:29,780 --> 00:03:33,560 אבל, זה בדרך כלל מועיל יותר הדרך להדפיס את המשתנים. 62 00:03:33,560 --> 00:03:38,220 >> ואני רוצה גם להדגיש כי NSLog לוקח בבדיוק אותו הדבר 63 00:03:38,220 --> 00:03:41,650 ערכים מציין מיקום כמו printf עושה - 64 00:03:41,650 --> 00:03:45,900 כך% d הוא לint, f% הוא למצוף. 65 00:03:45,900 --> 00:03:49,750 עם זאת, אני רוצה להדגיש מאוד זה האחרון - 66 00:03:49,750 --> 00:03:52,960 NSLog% בסימן - 67 00:03:52,960 --> 00:03:55,390 שהוא מציין מיקום עבור אובייקט. 68 00:03:55,390 --> 00:04:01,160 וכפי שאמרתי קודם לכן, עסקות Objective-C פחות או יותר בעיקר בחפצים, 69 00:04:01,160 --> 00:04:05,020 ואז זה יבוא בשימוש בעת רוצה להדפיס, אולי, אולי 70 00:04:05,020 --> 00:04:08,390 NSArray, או NSDictionary, או NSString. 71 00:04:08,390 --> 00:04:13,750 >> לכן, גם, שים לב, כי בNSLog הצהרה, שיש לנו בשלט בחזית 72 00:04:13,750 --> 00:04:15,380 לציטוט - 73 00:04:15,380 --> 00:04:20,769 כי הוא מסמן מחרוזות ש, עכשיו, בObjective-C הם אובייקטים. 74 00:04:20,769 --> 00:04:23,310 הם כבר לא כוכבים פשוט char. 75 00:04:23,310 --> 00:04:25,530 הם אובייקטים, והם להתייחס אליהם ככאלה. 76 00:04:25,530 --> 00:04:28,690 >> אז, זה באמת חשוב שכאשר אתה משתמש NSLog זה לוקח בNS 77 00:04:28,690 --> 00:04:32,580 מחרוזת, מה שאומר שיהיה לך לכלול במולך 78 00:04:32,580 --> 00:04:34,270 מרכאות. 79 00:04:34,270 --> 00:04:38,290 וזה למה שאתה רואה, כאן, בכל הפונקציה שלי קוראת לNSLog זה, אני 80 00:04:38,290 --> 00:04:42,400 יש במול הציטוטים, אפילו למרות% d ו% f שלהם 81 00:04:42,400 --> 00:04:45,200 כולם אותו הדבר מג 82 00:04:45,200 --> 00:04:47,930 >> כל שאלות עד כה? 83 00:04:47,930 --> 00:04:50,920 אני אנסה לעבור את זה מהר כל כך שיכול להיות לנו יותר זמן לעבוד 84 00:04:50,920 --> 00:04:55,210 עם Xcode וObjective-C, ולכן כי אתם יכולים לקבל יותר 85 00:04:55,210 --> 00:04:57,630 מכיר את זה. 86 00:04:57,630 --> 00:05:01,900 >> בשלב הבא, אני רוצה להדגיש משהו חשוב מבחינה מושגית. 87 00:05:01,900 --> 00:05:05,130 אז, ב-C, רוב הדברים הם פונקציות. 88 00:05:05,130 --> 00:05:06,280 אנחנו עושים את קריאה לפונקציה. 89 00:05:06,280 --> 00:05:10,190 אנו מצהירים פונקציות בדרך זו, עם תמורת סוג ראשונה, ולאחר מכן את 90 00:05:10,190 --> 00:05:13,570 שם פונקציה, סוגריים, ולאחר מכן כל טיעונים והסוג של 91 00:05:13,570 --> 00:05:15,590 טיעונים אלה אנחנו רוצים להעביר פנימה 92 00:05:15,590 --> 00:05:19,970 וObjective-C, כי הכל הוא אובייקט או בכיתה - 93 00:05:19,970 --> 00:05:23,970 כך מחלקה ואובייקט הם שני מונחים ש הם בעיקר שם נרדף לכל אחד אחר, 94 00:05:23,970 --> 00:05:28,270 אז אני יכול להשתמש בם לסירוגין במהלך הסמינר. 95 00:05:28,270 --> 00:05:34,090 >> אבל, אתה תראה שיש לנו שיטות ב Objective-C ולא פונקציות. 96 00:05:34,090 --> 00:05:36,390 ושיטות שייכות לאובייקטים. 97 00:05:36,390 --> 00:05:38,950 אז באותה מידה, אולי לקחת לדוגמא, צומת - 98 00:05:38,950 --> 00:05:40,250 הסוג שלנו [לא ברור] 99 00:05:40,250 --> 00:05:44,390 צומת מpset 6 או 5 - 100 00:05:44,390 --> 00:05:49,590 יש לנו את המילה, רכוש, או מצביע הצומת הבא. 101 00:05:49,590 --> 00:05:53,880 שיטות הן פשוט פונקציות בתוך מסוג כלשהו של מבנה. 102 00:05:53,880 --> 00:05:57,510 >> לכן, במקרה זה, המבנה יהיה האובייקט, ולאחר מכן בשיטה הוא 103 00:05:57,510 --> 00:05:59,260 משהו ששייך לאובייקט. 104 00:05:59,260 --> 00:06:02,650 וכך היית להצהיר, סוג של, שיטה. 105 00:06:02,650 --> 00:06:07,990 היית מתחיל איתו, שוב, את התשואה סוג - כך, אני ניסיתי צבע 106 00:06:07,990 --> 00:06:12,990 קוד מילות מפתח כאן, כך שאתה חבר 'ה יכול לראות, לפחות, העיצוב 107 00:06:12,990 --> 00:06:17,650 דמיון בין הפונקציה הצהרות והצהרות שיטה. 108 00:06:17,650 --> 00:06:21,990 אז, אתה מתחיל עם, אתה יודע, תמורה סוג - במקרה הזה, זה מערך, או 109 00:06:21,990 --> 00:06:23,910 מצביע NSArray - 110 00:06:23,910 --> 00:06:26,710 ואז יש לך בשיטה זו. 111 00:06:26,710 --> 00:06:30,900 ואז, מה שמעניין כאן הוא כי במקום שיש סוגריים, אנחנו 112 00:06:30,900 --> 00:06:32,900 יש נקודתיים אלה. 113 00:06:32,900 --> 00:06:38,450 ואז, מול הטיעונים שלנו, לשים, שוב, בסוגריים את הסוג 114 00:06:38,450 --> 00:06:39,370 הטיעון שלנו. 115 00:06:39,370 --> 00:06:43,160 >> אז, עכשיו שאני מנסה לעשות השוואה בין, אתה יודע, וn 116 00:06:43,160 --> 00:06:45,450 מספר, כי הם שני ints כדומה. 117 00:06:45,450 --> 00:06:49,580 ואז, אחר אחד הוא סוג NSUInteger. 118 00:06:49,580 --> 00:06:56,390 ולאחר מכן, עם Objective-C, כאשר אתה רוצה להיות טענות מרובות ב 119 00:06:56,390 --> 00:07:00,030 הסעיף שלך שיטה, אתה, סוג של, להפריד אותם כמו סוג של זה - 120 00:07:00,030 --> 00:07:03,790 אני לא ממש בטוח איך לתאר את זה, אבל זה הוא דוגמא טובה לאופן שבי 121 00:07:03,790 --> 00:07:06,530 יכול להיות ויכוחים מרובים שם. 122 00:07:06,530 --> 00:07:10,360 >> אתה יכול, כמובן, רק לחלוטין להתעלם מהמעי גס andArray NSArray 123 00:07:10,360 --> 00:07:13,240 מערך, אם אתה רוצה רק שיטה שלוקח בנימוק אחד. 124 00:07:13,240 --> 00:07:13,677 כן, שאלה. 125 00:07:13,677 --> 00:07:18,701 >> קהל: האם שני NSUInteger ו טיעוני NSArray שניתן לנקוט ב 126 00:07:18,701 --> 00:07:21,530 בתוך NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: כן. 128 00:07:22,060 --> 00:07:23,400 אז, תן לי להסביר. 129 00:07:23,400 --> 00:07:23,790 אז, כן. 130 00:07:23,790 --> 00:07:30,260 לכן, השאלה הייתה הם NSUInteger ו NSArray * סוגים של הטיעונים, 131 00:07:30,260 --> 00:07:31,570 וזה נכון. 132 00:07:31,570 --> 00:07:35,700 אז, אתה תמיד רוצה לציין מה הסוג של הטיעון שלך הוא. 133 00:07:35,700 --> 00:07:41,570 וכאן, אני מנסה להכיר לך לחלק מהתחביר וvocab של 134 00:07:41,570 --> 00:07:45,910 Objective-C, ולכן אלה הם סוגים בפועל כי אתה תהיה התמודדות עם. 135 00:07:45,910 --> 00:07:48,970 >> וכמו שאתה תשים לב, מערכים הם כבר לא, סוג של, 136 00:07:48,970 --> 00:07:50,780 דברים סוגר פשוטים. 137 00:07:50,780 --> 00:07:52,060 הם אובייקטים. 138 00:07:52,060 --> 00:07:56,700 אמנם, אם אנחנו הולכים על למשנהו שקופיות, אנו יכולים לראות שאנחנו יכולים 139 00:07:56,700 --> 00:08:02,510 קשה קוד NSArray בObjective-C עם פשוט סמל במול 140 00:08:02,510 --> 00:08:04,190 סוגריים. 141 00:08:04,190 --> 00:08:08,650 אני לא, למעשה, די בטוח שאם אני מבחינה תחבירית בקידוד קשיח מערך 142 00:08:08,650 --> 00:08:16,020 כראוי לגרסת C, אבל זה אמור להיות במערך C. 143 00:08:16,020 --> 00:08:19,760 >> אז, זה איך היית, אתה יודע, אולי להשתמש בפונקציות או 144 00:08:19,760 --> 00:08:21,990 שיטות שיצרנו קודם לכן. 145 00:08:21,990 --> 00:08:22,250 נכון? 146 00:08:22,250 --> 00:08:25,340 אז, זה מקום שבו אנו מצהירים פונקציה ואת השיטה שלנו. 147 00:08:25,340 --> 00:08:28,020 ועכשיו אנחנו רוצים להשתמש בם ב התכנית שלנו, ואת זה הוא 148 00:08:28,020 --> 00:08:29,450 איך היינו עושה את זה. 149 00:08:29,450 --> 00:08:32,400 אז, ב-C, היית צריך, אתה יודע, אולי, ב bool, ואתה מגדיר את זה 150 00:08:32,400 --> 00:08:36,549 שווה את הפונקציה, ולאחר מכן אתה עובר בויכוחים. 151 00:08:36,549 --> 00:08:39,190 >> בObjective-C, זה די יותר אותו הדבר. 152 00:08:39,190 --> 00:08:43,370 יש לך NSArray * my_array, וזה הולך להיות שווה - עכשיו, רק 153 00:08:43,370 --> 00:08:47,460 הבדל כאן הוא דבר האובייקט הזה, שבו אני כבר מסומן בצהוב, ו 154 00:08:47,460 --> 00:08:51,180 כפי שאתה יכול לראות, ב-C, יש אין מילה אחרת צהובה. 155 00:08:51,180 --> 00:08:54,170 וזה בגלל ששיטות שייכות עם חפץ מסוים. 156 00:08:54,170 --> 00:08:59,800 אז בגלל זה אני צריך אובייקט זה, פחות או יותר, קורא בשיטה זו ב 157 00:08:59,800 --> 00:09:04,360 המספר אפס, ולאחר מכן NSArray, b, c, d. 158 00:09:04,360 --> 00:09:05,350 כל שאלות על זה? 159 00:09:05,350 --> 00:09:12,190 >> אנחנו תראו את המושגים האלה בפעולה די מהר, כאשר אנו נכנסים להדגמה. 160 00:09:12,190 --> 00:09:13,400 על אישור. 161 00:09:13,400 --> 00:09:17,170 עכשיו, אני רוצה לדבר קצת בקצרה כ -5 Xcode, שהוא 162 00:09:17,170 --> 00:09:21,160 סביבת פיתוח משולבת כי אתה תהיה עובד עם. 163 00:09:21,160 --> 00:09:26,160 אני יודע שהרבה מכם, או חלק מכם, אין לי מחשבי מקינטוש, אשר מהווה בעיה 164 00:09:26,160 --> 00:09:30,490 בגלל Xcode אינו זמין עבור Windows ו-PC. 165 00:09:30,490 --> 00:09:32,785 אל תשאל אותי למה, אבל כנראה - 166 00:09:32,785 --> 00:09:33,730 כן, של חברה. 167 00:09:33,730 --> 00:09:35,290 לא משנה מה. 168 00:09:35,290 --> 00:09:39,360 אבל בכל מקרה, ולכן, אני מתנצל אם חלק מן אתה צריך להוריד איזה 169 00:09:39,360 --> 00:09:43,000 מכונה וירטואלית עבור Mac ב כדי להפעיל Xcode 5. 170 00:09:43,000 --> 00:09:46,460 אבל זה מגניבות למדי תוכנה לשימוש. 171 00:09:46,460 --> 00:09:51,280 >> וכך, לפני שאנחנו צוללים לתוך כל סוג של הדגמה, אני רוצה רק להראות לך 172 00:09:51,280 --> 00:09:55,700 תמונה של מה שנראה כמו בXcode שלך חלון, ולאחר מכן גם לדבר על 173 00:09:55,700 --> 00:09:57,670 מה הוא כל המרחב הזה. 174 00:09:57,670 --> 00:10:01,600 אז, זה סוג של כמו ללמוד כיצד להשתמש ב-Microsoft Word, אלא אתה רוצה 175 00:10:01,600 --> 00:10:04,675 מקבל להכיר עם כל דברים שונים ש 176 00:10:04,675 --> 00:10:06,250 הולכים כאן. 177 00:10:06,250 --> 00:10:11,160 >> אז קודם כל, אני רוצה להפנות אותך לסרגל הכלים בראש. 178 00:10:11,160 --> 00:10:14,450 אתה תראה את זה, בחלקו העליון, יהיה לך את שם קובץ - 179 00:10:14,450 --> 00:10:18,100 או, בעצם, שם הפרויקט שלך ולאחר מכן את שם הקובץ שלך. 180 00:10:18,100 --> 00:10:20,940 שימו לב למשחק ו לחצני העצירה. 181 00:10:20,940 --> 00:10:24,210 אלה הם אלה שאתה תהיה משתמש כדי להפעיל את היישום שלך על 182 00:10:24,210 --> 00:10:25,600 סימולטור - 183 00:10:25,600 --> 00:10:26,550 סימולטור iOS. 184 00:10:26,550 --> 00:10:29,940 זה באופן אוטומטי מגיע עם Xcode 5, אז אתה לא צריך לדאוג 185 00:10:29,940 --> 00:10:32,070 הורדה איזה סימולטור. 186 00:10:32,070 --> 00:10:34,700 אתה פשוט לוחץ לשחק ו לאחר מכן הוא מפעיל את האפליקציה שלך. 187 00:10:34,700 --> 00:10:39,230 ואתה יכול לשחק איתך, ו תראה איך זה עובד מאוחר יותר. 188 00:10:39,230 --> 00:10:42,690 >> ואז, במרכז, כמובן, שבו כל הקוד היפה שלך הוא 189 00:10:42,690 --> 00:10:44,240 הולך. 190 00:10:44,240 --> 00:10:48,340 ולאחר מכן, בצד שמאל, תוכל יש את זה, בערך, תיקייה - 191 00:10:48,340 --> 00:10:50,340 ניווט - 192 00:10:50,340 --> 00:10:53,970 ולאחר מכן, תוכל גם לראות את זה, יחד עם סמל התיקייה, יש 193 00:10:53,970 --> 00:10:57,680 חבורה של סמלים אחרים שם כי יהיה שימושי בהמשך. 194 00:10:57,680 --> 00:11:04,710 >> ולאחר מכן, בצד ימין הוא כלי אזור שבו אתה יכול לעבוד עם 195 00:11:04,710 --> 00:11:09,620 חלק מהאובייקטים ולציין, אתה יודע, מה הצבע צריך להיות, מה 196 00:11:09,620 --> 00:11:12,040 גופן הטקסט צריך להיות, וכולי. 197 00:11:12,040 --> 00:11:15,890 אמנם, כל מה שאתה עושה באזור השירות, אתה יכול 198 00:11:15,890 --> 00:11:17,480 לעשות בקוד גם כן. 199 00:11:17,480 --> 00:11:21,630 וכך, אני הולך באמצעות שני דוגמאות לשימוש, פשוט, לא קוד ב 200 00:11:21,630 --> 00:11:23,730 כל - או קוד מינימאלי מאוד - 201 00:11:23,730 --> 00:11:28,290 פסוקים כל הקוד, רק כדי שאתם לדעת מה אתה יכול ולא יכול לעשות ב 202 00:11:28,290 --> 00:11:29,260 Xcode וObjective-C. 203 00:11:29,260 --> 00:11:32,770 >> ואז, סוף סוף, למטה בתחתית, יש לך את אזור ניפוי השגיאות. 204 00:11:32,770 --> 00:11:37,270 אז, אתה כבר לא צריך לרוץ GDB, וכולי וכולי, על התוכניות שלך. 205 00:11:37,270 --> 00:11:39,180 זה באופן אוטומטי עושה את זה בשבילך. 206 00:11:39,180 --> 00:11:42,880 ואתה גם יכול להדפיס חומר לאזור זה. 207 00:11:42,880 --> 00:11:46,790 אז בעצם, מאוחר יותר, נלך דרך mario.c, אם אתם עדיין זוכרים 208 00:11:46,790 --> 00:11:49,000 כי, בXcode. 209 00:11:49,000 --> 00:11:50,360 אז זה צריך להיות כיף. 210 00:11:50,360 --> 00:11:55,870 >> ואז, רק כדי להחזיר אותו ל Objective-C, אני רוצה להדגיש את מה 211 00:11:55,870 --> 00:11:57,440 אתה יכול לעשות עם אם דוחות. 212 00:11:57,440 --> 00:12:03,160 אז, אתה יודע, כי Objective-C הוא על של C, כל מה שאתה צריך לעשות זה, 213 00:12:03,160 --> 00:12:06,890 פשוטו כמשמעו, כמו ג אתה פשוט יש הבדלים קלים. 214 00:12:06,890 --> 00:12:10,810 אז, תוכל להבחין בצורה לאם אמירה עדיין היא אותו הדבר - יש לך 215 00:12:10,810 --> 00:12:14,280 אם, ואז יש לך סוגריים עם מצב הפנימי שלו, ואז 216 00:12:14,280 --> 00:12:17,150 סוגריים מסולסלים לכל מה שאתה רוצה לעשות בתוך משם. 217 00:12:17,150 --> 00:12:21,680 >> עם זאת, אני רוצה לשים שקופית את זה כאן, פשוט כדי להמחיש את זה, 218 00:12:21,680 --> 00:12:25,680 עם חפצים כי יש לנו עסק עם החברה, אנו צריכים להשתמש בדברים האלה 219 00:12:25,680 --> 00:12:31,240 נקרא כמו, שווה למחרוזת, אשר היא, במקרה, שיטה של 220 00:12:31,240 --> 00:12:33,710 מחרוזת או אובייקט NSString. 221 00:12:33,710 --> 00:12:38,600 לכן, מילה, במקרה זה, היא NSString מתנגד, ויש לה שיטה הנקראת הוא 222 00:12:38,600 --> 00:12:44,150 שווה למחרוזת, ואז אנחנו עוברים במחרוזת מקודדת קשה לראות 223 00:12:44,150 --> 00:12:48,110 אם אלה הם שווים אחד לשני. 224 00:12:48,110 --> 00:12:51,580 >> כל שאלות עד כה? 225 00:12:51,580 --> 00:12:52,440 על אישור. 226 00:12:52,440 --> 00:12:56,190 וכן, אני רוצה ללכת על עבור גם הצהרה. 227 00:12:56,190 --> 00:13:01,420 >> כך, למשל, אם אנחנו רוצים לולאה על פני האורך של מחרוזת ב-C, זה 228 00:13:01,420 --> 00:13:03,710 צריך להיות מוכר לך. 229 00:13:03,710 --> 00:13:07,840 וגם, בObjective-C, אני רוצה כדי להדגיש את זה, סוג של, 230 00:13:07,840 --> 00:13:09,235 שיטה הנקראת ספירה. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 טוב, בעצם, תן לי פשוט לקחת את זה בחזרה. 233 00:13:15,550 --> 00:13:17,200 רוזן הוא שיטה של ​​מערך. 234 00:13:17,200 --> 00:13:21,070 עם זאת, זה באופן ספציפי יותר רכושו של מערך, ולכן אתה 235 00:13:21,070 --> 00:13:22,380 ניתן להשתמש בסימון הנקודה. 236 00:13:22,380 --> 00:13:25,870 אבל אני לא רוצה להיכנס ליותר מדי חומר רעיוני זה, אני רק רוצה 237 00:13:25,870 --> 00:13:30,140 כדי להראות לך איך דברים היו נראים כמו בObjective-C לעומת ג 238 00:13:30,140 --> 00:13:35,400 >> וגם, אני רוצה לציין כי למרות שאני כבר משתמש NSUInteger 239 00:13:35,400 --> 00:13:39,860 מול כל מה שאני שלי בObjective-C, אתה יכול גם להשתמש int, כי int הוא 240 00:13:39,860 --> 00:13:42,290 חוקי לחלוטין בObjective-C, גם. 241 00:13:42,290 --> 00:13:42,475 כן? 242 00:13:42,475 --> 00:13:44,350 >> קהל: האם זה רק סגנונית, או - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: כן. 244 00:13:44,760 --> 00:13:46,060 לכן, כפי שתראה - 245 00:13:46,060 --> 00:13:49,390 כך, השאלה הייתה היא ש רק עניין סגנוני. 246 00:13:49,390 --> 00:13:54,820 כפי שתראה, יש לי, סוג של, כוכב דבר כוכבית למטה בתחתית, ו 247 00:13:54,820 --> 00:13:59,870 הקישור שיוביל אותך להצפת מחסנית טופס, שבו מישהו מסביר 248 00:13:59,870 --> 00:14:03,640 ההבדל בין int ב NSInteger וNSUInteger. 249 00:14:03,640 --> 00:14:05,540 וכך, אתה יכול לקרוא על כך בהמשך. 250 00:14:05,540 --> 00:14:07,640 שקופיות אלה יהיו, כמובן, עומד לרשותך. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> בואו נראה. 253 00:14:11,280 --> 00:14:12,150 אוקיי, מדהים. 254 00:14:12,150 --> 00:14:15,410 אז, זה כלול גם בשקופית כי חשבתי שזה היה נהדר 255 00:14:15,410 --> 00:14:19,370 אתר שמציג לך לתחביר Objective-C. 256 00:14:19,370 --> 00:14:24,410 אז, בעצם, למה שלא נעבור ל כרום ולבדוק את האתר הזה? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> נכון. 259 00:14:31,300 --> 00:14:36,670 לכן, מה שאני רוצה להראות לך החבר 'ה כאן היא תמונה זו. 260 00:14:36,670 --> 00:14:41,630 אז, זה, בערך, מה שהולך להיות אתה הולך לראות את החלק פנימי של כל 261 00:14:41,630 --> 00:14:42,890 קובץ Xcode. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 בעצם, למה שלא פשוט לקחת רגע, סוג של, קח את זה פנימה 264 00:14:51,430 --> 00:14:53,470 >> לכן, הספר הזה - 265 00:14:53,470 --> 00:14:55,880 זה האובייקט ש עם יש לנו עסק. 266 00:14:55,880 --> 00:14:59,680 ואז, זה ללא ספק הולך להיות ירושה מאובייקט אחר כלשהו, ​​אבל 267 00:14:59,680 --> 00:15:01,810 אתה לא צריך לדאוג בקשר לזה. 268 00:15:01,810 --> 00:15:04,430 ולאחר מכן, אותו, אולי, יש חלק ממשתני חבר. 269 00:15:04,430 --> 00:15:09,160 >> הדבר החשוב שאני רוצה להראות לך היא השיטות למשל, כאן. 270 00:15:09,160 --> 00:15:12,670 לכן, שיטות למשל מסומנות על ידי סימן מינוס הזה. 271 00:15:12,670 --> 00:15:15,550 ואז, כמו שאתה תשים לב, אנחנו כבר מתחיל לראות את הפרדיגמה 272 00:15:15,550 --> 00:15:17,670 להכרזת שיטה, נכון? 273 00:15:17,670 --> 00:15:22,670 סוג התמורה, את שם השיטה, ו אז הסוג של הוויכוח, ו 274 00:15:22,670 --> 00:15:24,660 אז את שמו של הוויכוח. 275 00:15:24,660 --> 00:15:29,090 וסימן מינוס זה אומר שזה שיטה, למשל, מה שאומר ש 276 00:15:29,090 --> 00:15:32,270 שיטות אלה זמינות רק ל אובייקטים שכבר מופעים. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> לעמת זאת, שיטות עם תוספת לחתום מולם הן ברמה 279 00:15:39,100 --> 00:15:43,640 שיטות, מה שאומר שאתה יכול להתקשר שיטות אלה, גם אם אין לך 280 00:15:43,640 --> 00:15:45,970 אובייקט שנוצר עדיין. 281 00:15:45,970 --> 00:15:51,600 לכן, לדוגמה ברורה, NSString היא בכיתה. 282 00:15:51,600 --> 00:15:55,850 ואתה יכול לקרוא, למשל, שיטות בכיתה על NSString - 283 00:15:55,850 --> 00:15:58,660 בפועל, כמו, המילה NSString. 284 00:15:58,660 --> 00:16:02,050 >> עם זאת, על מנת להשתמש בם שיטות, אתה בעצם 285 00:16:02,050 --> 00:16:03,460 צריך ליצור מחרוזת. 286 00:16:03,460 --> 00:16:08,980 לדוגמא, מחרוזת הכוכבים NSString שווה במרכאות, שלום עולם. 287 00:16:08,980 --> 00:16:10,910 ואז, אתה יכול להשתמש בשיטות אלה - 288 00:16:10,910 --> 00:16:11,990 שיטות למשל - 289 00:16:11,990 --> 00:16:14,790 שבמחרוזת עולם שלום. 290 00:16:14,790 --> 00:16:17,825 אז, זה ההבדל בין שיטות למשל ושיטות בכיתה. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> ו, אנחנו פשוט כיסינו את החלק הזה. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 מאפיינים הם עוד דבר שהם חלק פנימי של אובייקטים, בעצם. 295 00:16:33,750 --> 00:16:37,530 ולך להכריז עליהם עם במילות מפתח של נכס. 296 00:16:37,530 --> 00:16:39,940 יש לך אפשרויות אלה, לכאן, שאני אסביר לך מאוחר יותר, כאשר 297 00:16:39,940 --> 00:16:43,110 אנחנו הולכים להדגמה. 298 00:16:43,110 --> 00:16:43,660 כן? 299 00:16:43,660 --> 00:16:43,950 היי. 300 00:16:43,950 --> 00:16:45,440 >> קהל: האם אתה יכול להגדיל את התצוגה, בבקשה? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: אה, כן. 302 00:16:46,130 --> 00:16:46,560 סליחה. 303 00:16:46,560 --> 00:16:49,140 >> קהל: תודה לך. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: זה צריך להיות הרבה יותר טוב. 305 00:16:50,005 --> 00:16:51,240 >> קהל: כן. 306 00:16:51,240 --> 00:16:53,940 תודה. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: כן, בבקשה להזכיר לי אם אני שוכח כדי להגדיל או להקטין את התצוגה. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 אז, זה כל מה שרציתי כדי להראות לך על - 310 00:17:03,570 --> 00:17:05,970 וואו, זה המון - 311 00:17:05,970 --> 00:17:06,790 לאתר זה. 312 00:17:06,790 --> 00:17:12,210 אז, בואו נחזור לשקופיות שלנו. 313 00:17:12,210 --> 00:17:17,819 >> למעשה, עכשיו בואו ניקח רגע לצלול לתוך הדגמה. 314 00:17:17,819 --> 00:17:25,490 אז, נתחיל עם פרויקט Xcode חדש. 315 00:17:25,490 --> 00:17:33,040 לכן, אם אתה פותח את Xcode על כל המכונות שלך, זה צריך לקחת לך קצת 316 00:17:33,040 --> 00:17:36,720 דף שבו הוא אומר, כאילו, או פתוח עד פרויקט קיים או חדש 317 00:17:36,720 --> 00:17:39,230 פרויקט, ואתה צריך לחץ על פרויקט חדש. 318 00:17:39,230 --> 00:17:41,477 ואז, זה צריך לקחת לך מסך זה. 319 00:17:41,477 --> 00:17:41,593 כן? 320 00:17:41,593 --> 00:17:44,279 >> קהל: אם אין לנו מק, אנחנו פשוט סוג של צמרמורת? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: או להסתכל על עם מישהו, כן. 322 00:17:46,870 --> 00:17:47,740 כן. 323 00:17:47,740 --> 00:17:50,660 אתה יכול להירגע, יותר מדי. 324 00:17:50,660 --> 00:17:51,570 על אישור. 325 00:17:51,570 --> 00:17:55,410 >> לכן, מה שאנחנו הולכים לעשות קודם, עכשיו, הוא, בעצם, אנחנו הולכים לעשות 326 00:17:55,410 --> 00:17:56,600 יישום תצוגה אחת. 327 00:17:56,600 --> 00:18:01,340 לכן, אם תשימו לב, מה נהדר על Xcode ותמיכה אפל עבור 328 00:18:01,340 --> 00:18:05,690 המפתחים הוא שיש לך הרבה תבניות לעבוד עם כבר. 329 00:18:05,690 --> 00:18:09,210 אתה יכול, למשל, לעשות יישום של האדון ופירוט. 330 00:18:09,210 --> 00:18:10,920 אתה יכול לעשות את משחק - 331 00:18:10,920 --> 00:18:13,860 ובעצם, אני לא אכנס למשחקים, משום שמשחקים הם סיפור אחר 332 00:18:13,860 --> 00:18:15,320 לפיתוח iOS. 333 00:18:15,320 --> 00:18:18,930 והם סוג של להפריד, אז אני לא אכנס לזה. 334 00:18:18,930 --> 00:18:22,580 >> לאחר מכן, יש המבוסס על דף שאתה יישומים. 335 00:18:22,580 --> 00:18:24,010 יש לך יישום כרטיסייה - 336 00:18:24,010 --> 00:18:29,350 כל כך אוהב, למשל, בנק אוף אמריקה כנראה יש לו, כמו, אפליקציה באמצעות כרטיסיות. 337 00:18:29,350 --> 00:18:32,140 זה אלה שבם יש לך הכפתורים בתחתית. 338 00:18:32,140 --> 00:18:34,750 ואז, יש לך משחק ערכת ספרייט. 339 00:18:34,750 --> 00:18:38,670 >> או שאתה יכול לעבוד מהתחלה, אשר הוא מה שנעשינו מאוחר יותר. 340 00:18:38,670 --> 00:18:42,470 אבל בואו, קודם כל, תתחיל עם יישום תצוגה אחת. 341 00:18:42,470 --> 00:18:48,590 ואז, זה ישאל לשם מוצר, ואנחנו יכולים פשוט לעשות את הבדיקה. 342 00:18:48,590 --> 00:18:50,190 שם ארגון - 343 00:18:50,190 --> 00:18:54,140 כן, שם ארגון, מזהה חברה - 344 00:18:54,140 --> 00:18:58,100 אלה הם חשובים אם אתה הולך לשים את האפליקציה שלך בחנות היישומים. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 חוץ מזה, הקוד שלך הולך לרוץ בסדר גמור בלי זה. 347 00:19:05,116 --> 00:19:09,940 >> זה הולך להיות חשוב אם אתה רוצה - כן, כשלעצמה, כמו, לשים את האפליקציה שלך 348 00:19:09,940 --> 00:19:14,080 על גבי הטלפון או משהו, והבדיקה שלך את זה, אתה יודע, בחיים אמיתיים - 349 00:19:14,080 --> 00:19:15,360 זה יהיה חשוב. 350 00:19:15,360 --> 00:19:20,110 זה נוטה בדרך כלל להיות מזוהה עם איזה חשבון מפתחים 351 00:19:20,110 --> 00:19:20,970 עם אפל. 352 00:19:20,970 --> 00:19:24,740 >> וכן, אני יודע, כנראה, הרבה מכם לא יהיה כל חשבונות מפתחים. 353 00:19:24,740 --> 00:19:26,460 אני יודע שיש האוניברסיטה אחת. 354 00:19:26,460 --> 00:19:27,630 אני חושב שיש CS אחד. 355 00:19:27,630 --> 00:19:32,770 אבל, אתה יכול שלח לי ואני אנסה כדי להבין את זה בשבילך. 356 00:19:32,770 --> 00:19:38,210 אבל כרגע, אני פשוט לשים כמה דברים מציין מיקום כאן. 357 00:19:38,210 --> 00:19:41,250 >> ואתה יכול, כמובן, כאן, בחר אם אתה רוצה שזה יהיה אך ורק ב 358 00:19:41,250 --> 00:19:44,410 ה-iPhone, באייפד, או שניהם - 359 00:19:44,410 --> 00:19:46,630 יישום אוניברסלי. 360 00:19:46,630 --> 00:19:56,170 לכן, לעת עתה, בואו נעשה אוניברסלי, רק לראות את שני הצדדים של הפלטפורמה. 361 00:19:56,170 --> 00:19:57,120 >> בואו נראה. 362 00:19:57,120 --> 00:20:01,510 אז, עכשיו, אני הולך לחסוך זה באיזשהו תיקייה. 363 00:20:01,510 --> 00:20:04,500 לא משנה איפה - אתה תמיד יכול להעביר אותו מאוחר יותר. 364 00:20:04,500 --> 00:20:09,380 ועכשיו, אנחנו הבאנו לפרויקט Xcode שלנו. 365 00:20:09,380 --> 00:20:12,890 אני לא הייתי דואג על כל זה. 366 00:20:12,890 --> 00:20:17,510 הייתי מציע לא לגעת בכל של זה, אלא אם כן אתה יודע בדיוק מה 367 00:20:17,510 --> 00:20:18,260 אתה עושה. 368 00:20:18,260 --> 00:20:21,750 אז, כל זה, פשוט להתעלם על פי רוב. 369 00:20:21,750 --> 00:20:26,940 אתה לא צריך לגעת בו, ואם אתה לעשות בלגן לך עד כמה דברים כאן, זה 370 00:20:26,940 --> 00:20:28,600 נעשה קצת מסובך. 371 00:20:28,600 --> 00:20:32,480 >> אז, למה שלא נסתכל לתוך הקבצים על 372 00:20:32,480 --> 00:20:34,700 בצד שמאל בנווט שלנו. 373 00:20:34,700 --> 00:20:37,060 הנה, יש לנו AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 יש לנו AppDelegate.m אז, כפי שאתה הודעה, יש לנו כותרת קבצים, אשר 375 00:20:43,430 --> 00:20:45,720 בסופו בשעתי נקודה, ויש לנו יישום - 376 00:20:45,720 --> 00:20:46,970 למעשה, תן לי להתקרב פנימה 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 על אישור. 379 00:20:57,060 --> 00:20:59,940 תן לי להתקרב פנימה 380 00:20:59,940 --> 00:21:05,810 >> נכון, אז יש לך כותרת קבצים ו יש לך קבצי יישום. 381 00:21:05,810 --> 00:21:07,060 למעשה - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 על אישור. 384 00:21:09,240 --> 00:21:11,800 זה קצת מוזר, אבל לשאת איתי. 385 00:21:11,800 --> 00:21:16,140 ואז, בגלל שאנחנו בחרנו בתצוגה אחת יישום, אנחנו הולכים להיות 386 00:21:16,140 --> 00:21:17,340 עבודה עם לוח תכנון. 387 00:21:17,340 --> 00:21:22,140 >> לכן, התכנון הוא משהו שאפל יש לבוא עם כדי באמת לעזור 388 00:21:22,140 --> 00:21:26,550 מפתחים במהירות אב טיפוס היישומים שלהם. 389 00:21:26,550 --> 00:21:29,410 אז, זה מקום שבו אתה יכול ליצור אפליקציה ללא כתיבה 390 00:21:29,410 --> 00:21:31,710 שורה אחת של קוד. 391 00:21:31,710 --> 00:21:35,390 עם זאת, ביישום התצוגה היחיד שלנו, אין, כמובן, יש לנו 392 00:21:35,390 --> 00:21:41,270 להגיש להשקפתנו, אשר הוא בקר תצוגה. 393 00:21:41,270 --> 00:21:45,150 אז, יש לנו את הכותרת ו קובץ יישום, כאן. 394 00:21:45,150 --> 00:21:52,350 >> וגם, אני הולך להקטין את התצוגה עכשיו כי אנחנו נצטרך לעבוד בלוח התכנון. 395 00:21:52,350 --> 00:21:55,190 אז, הנה דעתנו. 396 00:21:55,190 --> 00:22:00,120 אם אנחנו, פשוט, הפעילו את האפליקציה עכשיו, אין הרבה מרגש קורה. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 אז, אתה תראה מסך הלבן הזה. 399 00:22:05,040 --> 00:22:06,110 בסדר? 400 00:22:06,110 --> 00:22:14,010 >> וגם, באזור השירות שלנו, אנו יכולים להוסיף חבורה של דברים שונים לזה. 401 00:22:14,010 --> 00:22:19,290 אז, עם מסכי כאשר אתה מתעסק בiOS, בקרי תצוגה הם 402 00:22:19,290 --> 00:22:23,150 אובייקטים שלתמצת, סוג של, את השקפותיך. 403 00:22:23,150 --> 00:22:26,980 לכן, בקר תצוגה תמיד יש תכונה שנקרא תצוגה. 404 00:22:26,980 --> 00:22:29,610 והדעה כי, בדרך כלל, מכילה, מכיר אותך, מה שאתה 405 00:22:29,610 --> 00:22:30,810 רוצה לראות על מסך. 406 00:22:30,810 --> 00:22:39,210 >> אז, כן, בואו פשוט להתחיל על ידי הצבת, אולי, אולי תווית. 407 00:22:39,210 --> 00:22:41,450 אז, בואו לשים תווית על שם - 408 00:22:41,450 --> 00:22:44,080 לתקוע אותו באמצע. 409 00:22:44,080 --> 00:22:49,560 אז, עכשיו שאני כבר לחצתי על תווית, אני יכול להיכנס למפקח המאפיינים 410 00:22:49,560 --> 00:22:51,510 ולהתחיל לשנות את הערך שלו. 411 00:22:51,510 --> 00:22:55,040 בואו נקראים לזה CS50 צבעים. 412 00:22:55,040 --> 00:22:58,220 >> וכן, אני יכול גם לשנות את הגופן. 413 00:22:58,220 --> 00:23:02,630 אז, במקום לעשות מערכת, שהיא ברירת המחדל, אנחנו יכולים לעשות אחד מותאם אישית. 414 00:23:02,630 --> 00:23:03,770 אנחנו יכולים לשנות - 415 00:23:03,770 --> 00:23:06,453 אתה יודע, Ultralight, להפוך אותו 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 ואז, אנחנו יכולים לעשות את התיבה שלנו גדולה יותר. 418 00:23:11,370 --> 00:23:14,410 >> קהל: האם אתה חושב שאתה יכול להגדיל את התצוגה בקצת יותר, אולי? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: כן? 420 00:23:14,810 --> 00:23:16,196 על אישור. 421 00:23:16,196 --> 00:23:17,450 >> קהל: רק להקיש את זה? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: בוא נראה. 423 00:23:19,020 --> 00:23:20,382 זה עובד? 424 00:23:20,382 --> 00:23:22,270 >> קהל: פשוט להעביר את Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: בטח. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 על אישור. 428 00:23:25,940 --> 00:23:26,275 מדהים. 429 00:23:26,275 --> 00:23:27,072 >> קהל: התווית תחת? 430 00:23:27,072 --> 00:23:28,920 התווית? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: מה זה? 432 00:23:29,480 --> 00:23:32,050 >> קהל: מה נפתחת היה התווית תחת? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: לכן, השאלה הייתה, מה נפתחים היה התווית תחת? 434 00:23:35,170 --> 00:23:37,260 זה צריך, פשוט, להיות תחת כאן. 435 00:23:37,260 --> 00:23:39,330 אני מניח שזה דבר קובייה. 436 00:23:39,330 --> 00:23:40,910 אבל בדרך כלל, זוהי ברירת המחדל - 437 00:23:40,910 --> 00:23:43,250 אני בדיוק הולך כאן למטה עד שאני מוצא תווית. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 כן. 440 00:23:47,730 --> 00:23:48,950 >> אז עכשיו, יש לנו התווית שלנו. 441 00:23:48,950 --> 00:23:51,040 בואו נתרכז בו. 442 00:23:51,040 --> 00:23:56,410 וXcode נותן לנו הנחיות למרכוז אובייקטים. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 אז, עכשיו בואו להפעיל הקוד שלנו שוב. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> הנה. 447 00:24:08,800 --> 00:24:10,310 אז, יש לנו CS50 צבעים. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 ועכשיו, בואו נשים את כפתור על שם, נכון? 450 00:24:15,420 --> 00:24:17,480 מכיוון שאנחנו רוצים לעשות זה אינטראקטיבי. 451 00:24:17,480 --> 00:24:19,410 אז, בואו נשים את הכפתור כאן. 452 00:24:19,410 --> 00:24:39,020 ואנחנו קוראים לזה ברז לחצן "כאן כדי להמשיך. "אנחנו גם במרכזה, 453 00:24:39,020 --> 00:24:39,990 למעשה, זה כבר מרוכז. 454 00:24:39,990 --> 00:24:40,630 כן. 455 00:24:40,630 --> 00:24:43,130 >> אז, עכשיו יש לנו כפתור. 456 00:24:43,130 --> 00:24:53,000 ואם אנחנו מפעילים את זה שוב, אנחנו הולכים יש כפתור קטן ונחמד כאן. 457 00:24:53,000 --> 00:24:56,520 ואני יכול ללחוץ עליו, אבל זה לא עושה שום דבר, משום שלא עשינו 458 00:24:56,520 --> 00:24:58,500 כל דבר עם הכפתור עדיין. 459 00:24:58,500 --> 00:25:01,740 >> אז, בואו ליצור מבט אחר, נכון? 460 00:25:01,740 --> 00:25:04,160 אז, בואו נגיד שאני רוצה לנצל שכפתור ואני רוצה 461 00:25:04,160 --> 00:25:05,730 לעבור לדף אחר - 462 00:25:05,730 --> 00:25:06,820 מבט אחר. 463 00:25:06,820 --> 00:25:14,440 מה שאני הולך לעשות הוא, שאני יכול ליצור בקר תצוגה, נכון? 464 00:25:14,440 --> 00:25:19,690 עכשיו אני אלחץ על הכפתור שלי, ולאחר מכן, הדבר החשוב הוא, אני הולך 465 00:25:19,690 --> 00:25:20,910 לחץ - או - 466 00:25:20,910 --> 00:25:23,660 כן, שליטת עיתונות על המקלדת שלי. 467 00:25:23,660 --> 00:25:24,880 שליטה. 468 00:25:24,880 --> 00:25:27,005 לחץ על הכפתור, ולאחר מכן לגרור. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> אז, זכור החזק את מקש השליטה. 471 00:25:33,550 --> 00:25:35,160 בואו נעשה את זה שוב. 472 00:25:35,160 --> 00:25:40,930 אז, תחזיק בשליטה, לחץ וגררו למה שאתה רוצה לעשות. 473 00:25:40,930 --> 00:25:41,520 על אישור. 474 00:25:41,520 --> 00:25:43,610 >> ועכשיו, יש לי כמה אפשרויות כאן. 475 00:25:43,610 --> 00:25:47,900 אני יכול גם לדחוף, או שאני יכול לעשות מודאלית, או שאני יכול לעשות מותאם אישית. 476 00:25:47,900 --> 00:25:50,900 Push הוא רק אם יש לך בקר ניווט. 477 00:25:50,900 --> 00:25:54,270 נכון לעכשיו, התצוגה הראשונה שלנו הבקר הוא לא בתוך מכל 478 00:25:54,270 --> 00:25:55,610 בקר ניווט. 479 00:25:55,610 --> 00:25:59,500 לכן, בקר הניווט הוא אחד שנותן לך את הכפתור חזרה על 480 00:25:59,500 --> 00:26:03,910 האפליקציה iOS שבו יש לך, אתה יודע, עליון כי, בערך, סרגל עבה - 481 00:26:03,910 --> 00:26:06,480 שבו אתה יכול לחזור, או קדימה, וכולי. 482 00:26:06,480 --> 00:26:07,740 נכון לעכשיו, אין לי את זה. 483 00:26:07,740 --> 00:26:11,050 וכך, בגלל זה אני לא יכול לעשות את דחיפה. 484 00:26:11,050 --> 00:26:12,480 >> אז, אני לוחץ על דחיפה בטעות, כאן. 485 00:26:12,480 --> 00:26:16,480 ובעצם, בואו להפעיל את הקוד, ויש לו לקרוס עליי. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 רק אם אני לוחץ על הכפתור אם כי, כך - 488 00:26:22,960 --> 00:26:23,420 נכון. 489 00:26:23,420 --> 00:26:26,480 אז, זה רע. 490 00:26:26,480 --> 00:26:31,330 >> וגם, כפי שאתה יכול לראות, כאן, אנחנו יש הודעת השגיאה. 491 00:26:31,330 --> 00:26:35,460 לכן, "ניתן להשתמש רק segues Push כש בקר המקור מנוהל על ידי 492 00:26:35,460 --> 00:26:40,700 מופע של בקר ניווט בממשק משתמש ". אז, בגלל שזה לא היה בתוך 493 00:26:40,700 --> 00:26:44,030 בקר ניווט, אני לא יכול לעשות את זה. 494 00:26:44,030 --> 00:26:48,782 >> אז, עכשיו, אני חוזר ל תיקייה, חוזר ללוח התכנון. 495 00:26:48,782 --> 00:26:51,680 >> קהל: מה הניווט בקר, שוב? 496 00:26:51,680 --> 00:26:55,260 >> RHED Shi: אז, עכשיו אני אראה לך. 497 00:26:55,260 --> 00:26:56,200 בואו נראה. 498 00:26:56,200 --> 00:27:00,510 אז, אני הולך ללחוץ על תצוגה זו בקר, ולאחר מכן אני מתכוון ללכת 499 00:27:00,510 --> 00:27:03,920 עד מוצר - 500 00:27:03,920 --> 00:27:06,240 בעצם, לא, מצטער - עורך. 501 00:27:06,240 --> 00:27:08,360 ואני הולך להיכנס - 502 00:27:08,360 --> 00:27:09,350 בעצם, האם אני לוחץ על זה? 503 00:27:09,350 --> 00:27:10,070 לא. 504 00:27:10,070 --> 00:27:11,080 הנה. 505 00:27:11,080 --> 00:27:16,270 אני הולך לעלות לעורך, לרדת להטביע ב, ולאחר מכן ניווט 506 00:27:16,270 --> 00:27:17,520 הבקר. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> על אישור. 509 00:27:20,720 --> 00:27:27,750 ו, סביבת העבודה שלי נראית ממש מבולגנת, אז בואו לנקות את זה. 510 00:27:27,750 --> 00:27:29,000 אז, כל זה הוא התכנון. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 ובדרך זו - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 בסדר, תפסיק - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 אני יכול לבנות משהו במהירות ככה. 517 00:27:50,860 --> 00:27:53,020 ולאחר מכן, עכשיו אני יכול לחזור, אתה יודע? 518 00:27:53,020 --> 00:27:55,730 >> אבל זה די משעמם, נכון? 519 00:27:55,730 --> 00:28:03,020 לכן, מה שאני רוצה לעשות זה, אני לא רוצה לעשות, פשוט, נוף 520 00:28:03,020 --> 00:28:03,870 הבקר. 521 00:28:03,870 --> 00:28:07,720 נניח שאני רוצה לעשות בעצם בקר תצוגת טבלה, כך שאני יכול לשים ב 522 00:28:07,720 --> 00:28:12,110 כמה צבעים נחמדים, לשולחן. 523 00:28:12,110 --> 00:28:16,210 >> אז, עכשיו ששמתי בתצוגת השולחן שלי בקר, אני צריך לחבר אותו בחזרה 524 00:28:16,210 --> 00:28:18,560 מכפתור זה כדי בקר תצוגה. 525 00:28:18,560 --> 00:28:21,780 אז אני צריך לעשות את השליטה שלי, לחץ, דבר לגרור שוב. 526 00:28:21,780 --> 00:28:27,318 ועכשיו אני יכול לעשות את הדחיפה, כי אני להטביע זה חלק פנימי של בקר ניווט. 527 00:28:27,318 --> 00:28:32,210 >> קהל: ניווט בקר פשוט מאפשר לך לעבור מהמקום למקום? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: כן. 529 00:28:33,540 --> 00:28:38,670 לכן, יותר מבחינה טכנית, זה אובייקט שבו - 530 00:28:38,670 --> 00:28:43,150 כך, בתוך הניווט אובייקט בקר, זה 531 00:28:43,150 --> 00:28:44,780 עוקב אחר מערך. 532 00:28:44,780 --> 00:28:48,300 ומערך שמחזיק את כל הבא להציג בקרים. 533 00:28:48,300 --> 00:28:51,560 זו הסיבה שכאשר אתה לוחץ על גב, זה חוזר לדף הקודם. 534 00:28:51,560 --> 00:28:55,260 משום שבקר הניווט אובייקט, או את הקוד שמטפל 535 00:28:55,260 --> 00:28:58,890 אובייקט זה, יש מערך ששומר לעקוב אחר בקרי המבט האלה, ו 536 00:28:58,890 --> 00:29:01,870 אז יכול, אתה יודע, DQ התצוגה הבקר ולהחזיר לך את 537 00:29:01,870 --> 00:29:02,750 קודמו. 538 00:29:02,750 --> 00:29:05,200 >> אז, זה דברים טכניים, אבל - 539 00:29:05,200 --> 00:29:07,505 ואני אראה לך בהמשך קוד, אם יש לנו זמן. 540 00:29:07,505 --> 00:29:10,270 אני די הולך ואוזל בזמן, אבל - 541 00:29:10,270 --> 00:29:15,610 >> אז, עם תצוגת השולחן, מה אנחנו יכולים לעשות הוא - 542 00:29:15,610 --> 00:29:18,440 זה בדרך כלל מוגדר באופן אוטומטי לדינמי אב טיפוס - 543 00:29:18,440 --> 00:29:20,640 אנחנו הולכים לעשות את זה תאי סטטי, אחרת אנו הולכים 544 00:29:20,640 --> 00:29:22,920 להיתקל בכמה בעיות. 545 00:29:22,920 --> 00:29:28,470 >> ואז, נניח שאני הולך יש סעיף אחד. 546 00:29:28,470 --> 00:29:31,000 לכן, חלקים הוא כמו - 547 00:29:31,000 --> 00:29:35,160 אם ראו אי פעם את יישום המוזיקה, כאשר יש לך אמנים, קטעים הייתם 548 00:29:35,160 --> 00:29:37,830 להיות של דרך Z's - 549 00:29:37,830 --> 00:29:38,780 האותיות - 550 00:29:38,780 --> 00:29:42,600 ואז, אתה יודע, הפרט שורות יהיו השמות האומנים. 551 00:29:42,600 --> 00:29:47,460 וכך, מה שמגניב כאן הוא, שאני יכול לגשת לכל האובייקטים בתוך 552 00:29:47,460 --> 00:29:50,430 לוח התכנון שלי לעבור את זה תפריט נפתחים, יותר מדי. 553 00:29:50,430 --> 00:29:56,600 >> אז, אני הולך ללחוץ על הקטע שלי, ואני רוצה, אתה יודע, אולי חמש שורות. 554 00:29:56,600 --> 00:30:00,770 ואז, בתוך כל שורה, אני רוצה לשים את תווית. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 ואני הולך לקרוא כחול הזה. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 ואז, אני רוצה לשים את תצוגת ממשק משתמש, אתה יודע, אולי ל, כמו, קופסא קטנה. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> כדי שאוכל להראות לאנשים תצוגה מקדימה של הצבע. 561 00:30:28,710 --> 00:30:34,150 ואני אחזור לנכס ו לשנות את הצבע של, הו, אני לא 562 00:30:34,150 --> 00:30:35,510 יודע, זה אחד. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> ואז, שים לב גם, כאן, כאשר אני צריך האביזרים, אני יכול יש לי המון 565 00:30:43,150 --> 00:30:46,160 של האביזרים השונים כי בדרך כלל אתה רואה. 566 00:30:46,160 --> 00:30:55,250 חיווי הגילוי, הפירוט, או לבדוק את חותם, או פשוט סתם פרט ופרט. 567 00:30:55,250 --> 00:30:59,080 אז, אולי אנחנו יכולים לעשות, כמו, גילוי מחוון, למשל. 568 00:30:59,080 --> 00:31:03,540 >> ואז, למה שלא ניקח, להעתיק אלה להדביק אותם, ולשים אותם לתוך 569 00:31:03,540 --> 00:31:06,740 השורה בטבלה הבאה. 570 00:31:06,740 --> 00:31:08,115 לכן, אנחנו יכולים לקרוא לזה צהוב. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 וייתכן שאצטרך להרחיב את זה. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 בואו נעשה את זה צהוב. 575 00:31:17,290 --> 00:31:20,610 ובדרך זו, אנו יכולים להעתיק הדבק את דרכנו למטה. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 מה זה היה? 578 00:31:25,370 --> 00:31:26,620 סגול. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> לכן, כל אלה הם CS50 הטיפוסי צבעים שראיתם בכיתה - 581 00:31:34,740 --> 00:31:37,160 בעצם, סליחה - 582 00:31:37,160 --> 00:31:38,410 או באתר האינטרנט. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 אני מקווה שאתם יכולים לראות מה אני עושה כאן. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 על אישור. 587 00:31:57,890 --> 00:31:58,490 האחרון. 588 00:31:58,490 --> 00:32:02,040 >> קהל: איך אתה מוסיף השורה בהתחלה? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: לכן, השאלה הייתה, איך היה לי להוסיף השורה בהתחלה? 590 00:32:04,740 --> 00:32:07,500 אני נכנסתי לסעיף בטבלה זו - או בכל אופן אני יכול 591 00:32:07,500 --> 00:32:09,200 בחר את מקטע השולחן - 592 00:32:09,200 --> 00:32:11,250 ולאחר מכן, הנה, אני מתעדכן מספר השורות. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> ו, תן לי מקווה שזה עובד. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 על אישור. 597 00:32:31,480 --> 00:32:32,870 בואו אראה אם ​​זה עובד. 598 00:32:32,870 --> 00:32:34,000 אה, מושלם, מדהים. 599 00:32:34,000 --> 00:32:35,300 על אישור. 600 00:32:35,300 --> 00:32:40,330 בזמן שאני בונה את הדמו שלי, כמה דברים לא היו מסודרים, כל כך, תודה על 601 00:32:40,330 --> 00:32:42,510 מחיאות הכפיים. 602 00:32:42,510 --> 00:32:42,920 >> כן. 603 00:32:42,920 --> 00:32:44,770 אז, בואו נראה. 604 00:32:44,770 --> 00:32:47,550 אנחנו עושים תשע זה רק כדי להפוך את הכל - או בעצם, בואו פשוט 605 00:32:47,550 --> 00:32:51,420 להפוך את כל אלה לגילוי מחוונים. 606 00:32:51,420 --> 00:32:55,790 ואז, מה שאני רוצה להראות לך, יותר מדי, היה איך אני יכול לקחת כל אחד מאלה 607 00:32:55,790 --> 00:32:59,230 שורות בטבלה ויש להם אינטראקציה - 608 00:32:59,230 --> 00:33:00,150 הו. 609 00:33:00,150 --> 00:33:01,400 לא. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> אה. 612 00:33:06,030 --> 00:33:07,230 כמו כן, אני רוצה להראות לך - 613 00:33:07,230 --> 00:33:13,080 כאן, אני יכול לשים את הכותרת שלי בקר ניווט, נכון? 614 00:33:13,080 --> 00:33:17,090 אז בעצם, תוכל להבחין, ברגע שאני מוטבע בקר תצוגה זו בתוך 615 00:33:17,090 --> 00:33:22,010 של בקר הניווט, אנו רואים סרגל ניווט זה בראש שלנו 616 00:33:22,010 --> 00:33:25,340 ייצוג לוח תכנון של בקר תצוגה. 617 00:33:25,340 --> 00:33:29,270 וכך, זה נותן לנו, כמו, חזותי, סוג של, להדריך למסך הגלוי שלנו. 618 00:33:29,270 --> 00:33:34,360 זה ללא ספק הולך להיות סרגל הניווט. 619 00:33:34,360 --> 00:33:40,950 >> ומה שאני רוצה לעשות במהירות, עכשיו, הוא לשים אחר - 620 00:33:40,950 --> 00:33:45,880 אז זה הבקר תצוגת טבלה שעשיתי על ידי לוקח אחד מהם וגרירתו 621 00:33:45,880 --> 00:33:49,800 כאן, וזה מה שאפשר לי מהירות, באמת, ליצור תצוגת שולחן 622 00:33:49,800 --> 00:33:50,850 הבקר. 623 00:33:50,850 --> 00:33:54,100 אם יש לך את הזמן שאנחנו, תוכלו רואה את זה, באופן תכנותי, זה 624 00:33:54,100 --> 00:33:57,660 קצת מסובך יותר כדי ליצור טבלה צפה בבקר, כי יש 625 00:33:57,660 --> 00:34:02,520 הם כמה שיטות שאינן נדרש לך, בערך, לכתוב 626 00:34:02,520 --> 00:34:07,130 בצו לתצוגת השולחן הבקר שיוצג בצורה נכונה. 627 00:34:07,130 --> 00:34:15,340 >> עם זאת, אני רוצה רק להראות לך, עכשיו, דוגמא לשם, אם אני לוקח את זה, 628 00:34:15,340 --> 00:34:15,920 לדוגמא - 629 00:34:15,920 --> 00:34:18,290 שמתי בבקר תצוגה אחרת. 630 00:34:18,290 --> 00:34:27,320 ועכשיו, בואו נגיד שאני רוצה לשלוט alt הכחול הראשונה שלי 631 00:34:27,320 --> 00:34:28,980 שורה בטבלה לכאן. 632 00:34:28,980 --> 00:34:31,070 ואני רוצה לקרוא לכחול הזה. 633 00:34:31,070 --> 00:34:32,570 ולאחר מכן - 634 00:34:32,570 --> 00:34:34,159 בואו נראה. 635 00:34:34,159 --> 00:34:41,050 אני במבט עכשיו, ואני יכול לשנות הרקע לכחול. 636 00:34:41,050 --> 00:34:45,945 >> וכך, הודעה מוקדמת, כאן, נפתחת זו תפריט גם נותן לך היררכיה של כל 637 00:34:45,945 --> 00:34:47,040 של האובייקטים האלה. 638 00:34:47,040 --> 00:34:50,530 אז דבר חשוב לציין, כאן, הוא שכל הדברים האלה, כאן - 639 00:34:50,530 --> 00:34:54,330 בקר שולחן השקפה זו, את השולחן נוף, סעיף תצוגת טבלה, תצוגת שולחן 640 00:34:54,330 --> 00:34:57,169 תא - כל אלה הם אובייקטים, בקוד. 641 00:34:57,169 --> 00:35:03,752 אז, אתה יודע, תווית כרגע היא תחת צפה בתוכן, וכולי. 642 00:35:03,752 --> 00:35:05,020 כן הלאה וכן הלאה. 643 00:35:05,020 --> 00:35:08,765 >> לכן, אם אנו מפעילים את הקוד הזה, אנחנו צריך לראות משהו - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 בואו תראו אם זה - כן. 646 00:35:17,870 --> 00:35:18,670 לכן, יש לנו ללכת. 647 00:35:18,670 --> 00:35:22,120 אבל, אם אנחנו לא עושים את זה, אף אחד הדברים אחרים האלה עובדים. 648 00:35:22,120 --> 00:35:22,500 נכון? 649 00:35:22,500 --> 00:35:23,800 אז רק זה עובד. 650 00:35:23,800 --> 00:35:29,100 וגם, למען הזמן, אני לא נכנס, אתה יודע, לשים 651 00:35:29,100 --> 00:35:29,770 את האחרים. 652 00:35:29,770 --> 00:35:32,020 וזה סוף, סוג של, לוח תכנון - 653 00:35:32,020 --> 00:35:33,400 מה שרציתי להראות שלך ללוח התכנון. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> וגם, יש לי דוגמא הסתדר, למעשה, ממש כאן. 656 00:35:43,490 --> 00:35:48,090 אז, זה לוח התכנון שאני עשיתי בעבר. 657 00:35:48,090 --> 00:35:52,740 אז כמו שאתם יכולים לראות, זה היה בקר הניווט שלי. 658 00:35:52,740 --> 00:35:57,040 ואז היה לי הבקר התצוגה הראשון שלי, לאחר מכן היה לי הבקר תצוגת טבלה שלי, 659 00:35:57,040 --> 00:35:58,980 ולאחר מכן היה לי כל אלה - 660 00:35:58,980 --> 00:36:01,180 כך בעבר, אני עושה משהו שונה מאוד. 661 00:36:01,180 --> 00:36:04,450 אז, תסלח לי את הדברים האלה. 662 00:36:04,450 --> 00:36:07,930 אני בטח לנקות אותו מאוחר יותר לפני אני שולח אותה לייצור. 663 00:36:07,930 --> 00:36:12,800 >> אבל, אם אנחנו מנהלים את זה, נוכל לראות כי כל האפשרויות הם 664 00:36:12,800 --> 00:36:14,050 עומד לרשותנו. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 חוץ מזה שלא עשה את הרקע אלה צבעים. 667 00:36:21,320 --> 00:36:26,510 לכן, יישום פשוט נחמד. 668 00:36:26,510 --> 00:36:28,340 >> עכשיו, בואו ננסה להתמודד עם בעיה זה תכנותי. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 על אישור. 671 00:36:32,130 --> 00:36:37,570 לכן, כדי לעשות את זה, אנחנו פשוט הולכים כדי להתחיל פרויקט Xcode חדש. 672 00:36:37,570 --> 00:36:41,920 אנחנו נעשה את זה יישום ריק עכשיו, בגלל שאנחנו לא רוצים לקבל את 673 00:36:41,920 --> 00:36:42,380 לוח תכנון. 674 00:36:42,380 --> 00:36:46,590 אז, אני פשוט מגביל את עצמי לא להשתמש בכל לוח התכנון, ו 675 00:36:46,590 --> 00:36:49,170 יישום ריק לא יהיה תן לי את לוח תכנון. 676 00:36:49,170 --> 00:36:52,256 זה רק כדי למנוע את עצמי מרמאות. 677 00:36:52,256 --> 00:36:54,428 בואו נראה. 678 00:36:54,428 --> 00:36:55,360 חכה. 679 00:36:55,360 --> 00:36:55,960 עשיתי לי - 680 00:36:55,960 --> 00:36:56,448 כן. 681 00:36:56,448 --> 00:36:57,698 על אישור. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> נכון. 684 00:37:09,180 --> 00:37:16,790 אז, הנה, אנחנו נשארים עם שום דבר אבל אחר קוד. 685 00:37:16,790 --> 00:37:19,460 אז, תן לי לעבור חלון זה מעט מעל. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 נכון. 688 00:37:22,260 --> 00:37:28,160 כפי שאתם יכולים לראות כאן, רק הקבצים אנחנו נתון AppDelegate.h ונקודה 689 00:37:28,160 --> 00:37:30,500 מ ', ואין לנו storyboard יותר. 690 00:37:30,500 --> 00:37:39,580 >> אז אם אנחנו מנהלים את זה, אנחנו עדיין הולכים להגיע למסך הלבן, תודה לאל. 691 00:37:39,580 --> 00:37:42,280 אישור - מסך לבן, אבל לא שום דבר אחר. 692 00:37:42,280 --> 00:37:45,260 וכן, כאן הוא החלק החשוב. 693 00:37:45,260 --> 00:37:47,810 זה מקום בו הפעולה שקורה. 694 00:37:47,810 --> 00:37:51,410 בגרסאות הקודמות, יש בדרך כלל אף קוד כאן, אבל 695 00:37:51,410 --> 00:37:55,600 לוח תכנון למעשה מספק הקוד לחלק זה. 696 00:37:55,600 --> 00:37:57,470 אני לא אכנס לפרטים על איך. 697 00:37:57,470 --> 00:38:02,890 >> ומה שאנחנו רוצים לעשות עכשיו הוא, שאנחנו רוצים ללכת לכאן, והמרחב הקטן הזה 698 00:38:02,890 --> 00:38:05,050 מתחיל ביצירת האפליקציה שלנו שוב. 699 00:38:05,050 --> 00:38:06,092 אז - 700 00:38:06,092 --> 00:38:06,318 כן? 701 00:38:06,318 --> 00:38:07,450 >> קהל: זום? 702 00:38:07,450 --> 00:38:07,770 >> RHED SHI: זום. 703 00:38:07,770 --> 00:38:09,020 כן, בטח. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 על אישור. 706 00:38:14,520 --> 00:38:17,380 אני אהיה הקלדה, כך שזה לא צריך משנה יותר מדי. 707 00:38:17,380 --> 00:38:17,940 על אישור. 708 00:38:17,940 --> 00:38:22,720 >> אז קודם, זוכר שרצינו ליצור בקר ניווט, נכון? 709 00:38:22,720 --> 00:38:27,090 וגם, כפי שאתה יכול לראות כאן, Xcode עושה עבודה גדולה באמת של 710 00:38:27,090 --> 00:38:28,070 מילוי עצמי. 711 00:38:28,070 --> 00:38:31,650 אז, כפי שאתה שם לב, את שמותיהם של כל מה שהם הרבה יותר מאשר 712 00:38:31,650 --> 00:38:33,910 כרגיל, אבל Xcode ממלא את זה בשבילך. 713 00:38:33,910 --> 00:38:35,710 אז אני פשוט יכול ללחוץ על Enter. 714 00:38:35,710 --> 00:38:40,180 >> לכן, אני רוצה ליצור ממשק משתמש ניווט מצביע הבקר, ואני יכול לקרוא לזה 715 00:38:40,180 --> 00:38:41,430 navigationController. 716 00:38:41,430 --> 00:38:43,040 717 00:38:43,040 --> 00:38:44,470 עכשיו, מה אני עושה עכשיו? 718 00:38:44,470 --> 00:38:49,510 לאחר סימן שוויון זה, אני צריך, קודם כל, ליצור אותו בתוך הזיכרון. 719 00:38:49,510 --> 00:38:53,790 אז, אני הולך לעשות NavigationController alloc - 720 00:38:53,790 --> 00:38:56,640 כן, זה דומה לmalloc, כי אתם השתמשו ב-C - 721 00:38:56,640 --> 00:38:58,400 ולאחר מכן, אני הולך init זה. 722 00:38:58,400 --> 00:39:03,670 >> אז, זה באמת חשוב כי כל אובייקט שאתה יוצר, אתה רוצה 723 00:39:03,670 --> 00:39:04,940 alloc וinit זה. 724 00:39:04,940 --> 00:39:08,600 זה הולך ליצור אותו ו instantialize הפנימי של זיכרון, ו 725 00:39:08,600 --> 00:39:10,480 עכשיו אתה יכול להשתמש בו. 726 00:39:10,480 --> 00:39:10,780 בסדר? 727 00:39:10,780 --> 00:39:14,360 אם אתה לא עושה את זה, האובייקט שלך עושה לא קיימות, ואתה נתקל בחבורה 728 00:39:14,360 --> 00:39:17,290 של בעיות. 729 00:39:17,290 --> 00:39:20,250 >> ואז, אני רוצה ליצור בקר תצוגה, נכון? 730 00:39:20,250 --> 00:39:25,580 לכן, אני רוצה ליצור UIViewController כוכב - 731 00:39:25,580 --> 00:39:29,620 כך, כל מה שהוא מצביע ב Objective-C, ואני הולך לעשות 732 00:39:29,620 --> 00:39:31,600 משהו דומה, כאן - 733 00:39:31,600 --> 00:39:32,850 alloc, init. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 על אישור. 736 00:39:40,150 --> 00:39:43,450 >> ואז מה שאני הולך לעשות הוא, אני הולך - כן, יש לזכור בעת שעשינו 737 00:39:43,450 --> 00:39:45,360 להטביע בבקר ניווט? 738 00:39:45,360 --> 00:39:46,920 זה איך אתה עושה את זה בקוד. 739 00:39:46,920 --> 00:39:54,550 אתה הולך לעשות navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> קהל: [לא ברור]. 742 00:39:57,636 --> 00:39:59,030 האם זה יקרה לנו, או -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: הו, כן. 744 00:40:00,080 --> 00:40:00,550 לא. 745 00:40:00,550 --> 00:40:02,740 הוא אוהב אותי יותר טוב. 746 00:40:02,740 --> 00:40:04,670 לא, זה יעבוד גם בשבילך. 747 00:40:04,670 --> 00:40:06,700 לכן, כל אלה הם השיטות. 748 00:40:06,700 --> 00:40:10,400 אז pushViewController היא שיטה, ו גם, ליתר דיוק, זה 749 00:40:10,400 --> 00:40:13,590 שיטת מופע של ממשק המשתמש בקר ניווט. 750 00:40:13,590 --> 00:40:20,030 כי היה לי כדי ליצור ניווט בממשק המשתמש שלי כוכבים בקר, ואז אני 751 00:40:20,030 --> 00:40:24,510 אפשר לקרוא לזה pushViewController עליי מופע ספציפי של ניווט בממשק משתמש 752 00:40:24,510 --> 00:40:25,010 הבקר. 753 00:40:25,010 --> 00:40:29,490 >> קהל: האם אנחנו צריכים לעשות בדיוק מילה, או שהיא כבר קיימת עבורו? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: כן, בגלל שזה שיטה. 755 00:40:31,380 --> 00:40:32,200 זה כמו פונקציה. 756 00:40:32,200 --> 00:40:33,330 זה כמו printf. 757 00:40:33,330 --> 00:40:34,390 זה כמו scanf. 758 00:40:34,390 --> 00:40:36,250 זה כמו strcompare. 759 00:40:36,250 --> 00:40:40,310 מלבד שהוא יודע מה שאתה אולי כדאי לך ההקלדה, ולשים לב שזה תמיד יהיה 760 00:40:40,310 --> 00:40:42,740 לבוא עם דברים שהם מותר באופן חוקי בשבילך. 761 00:40:42,740 --> 00:40:47,620 לכן, אם דבר לא מופיע כאן, אז משהו לא בסדר. 762 00:40:47,620 --> 00:40:50,550 >> אז, pushViewController. 763 00:40:50,550 --> 00:40:52,580 אז, עכשיו, אני רוצה לדחוף נוצר חדש 764 00:40:52,580 --> 00:40:56,850 UIViewController, ולאחר מכן, אנימציה - 765 00:40:56,850 --> 00:40:57,470 ואולי לא. 766 00:40:57,470 --> 00:41:00,110 כי זה הולך להיות בקר המבט הראשון. 767 00:41:00,110 --> 00:41:03,210 אני מתכוון, גם אם אני לא עושה אנימציה, זה כנראה לא יופיע, משום 768 00:41:03,210 --> 00:41:05,050 זה המסך הראשון. 769 00:41:05,050 --> 00:41:06,540 >> וזוכר את סוגריים. 770 00:41:06,540 --> 00:41:08,850 אז, זוכר איך היינו בסוגריים? 771 00:41:08,850 --> 00:41:11,870 ובתוך סוגריים, האובייקט קורא לשיטה - 772 00:41:11,870 --> 00:41:15,910 כך האובייקט שלנו הוא הניווט הבקר, והשיטה היא לדחוף 773 00:41:15,910 --> 00:41:17,210 בקר תצוגת אנימציה. 774 00:41:17,210 --> 00:41:21,920 ולראות איך זה לוקח בשתי טענות, והם מופרדים על ידי, סוג של, 775 00:41:21,920 --> 00:41:24,390 מילות, ומעי גס. 776 00:41:24,390 --> 00:41:28,300 אז, Objective-C מנסה לעשות את זה יפה וקל לך לקרוא בקול רם - 777 00:41:28,300 --> 00:41:33,020 הקוד שלך - ויש לו למחצה, סוג של, הגיוני. 778 00:41:33,020 --> 00:41:37,150 >> עם זאת, עושה בדיוק את זה זה לא מספיק. 779 00:41:37,150 --> 00:41:39,780 תן לי להקטין את התצוגה עכשיו. 780 00:41:39,780 --> 00:41:44,210 עושה בדיוק את זה הוא לא מספיק כדי לקבל את מה שיש לנו בעבר. 781 00:41:44,210 --> 00:41:48,580 אז הנה, תוכל להבחין שיש בעצם לא הולך להיות כל סוג של 782 00:41:48,580 --> 00:41:50,190 בר, כאן, נכון? 783 00:41:50,190 --> 00:41:54,680 אין סרגל ניווט, שפירושו שאנחנו עדיין לא קיבלנו אותה. 784 00:41:54,680 --> 00:41:58,850 >> ואנחנו יכולים לבדוק את זה, גם, על ידי, אולי, לשנות את הרקע של 785 00:41:58,850 --> 00:42:00,460 ViewController, נכון? 786 00:42:00,460 --> 00:42:01,710 ViewController.background-- 787 00:42:01,710 --> 00:42:03,155 788 00:42:03,155 --> 00:42:03,640 אה. 789 00:42:03,640 --> 00:42:07,690 אז, לראות איך ViewController לא הייתה לי צבע רקע, למרות שאני 790 00:42:07,690 --> 00:42:08,780 רציתי לגשת אליו? 791 00:42:08,780 --> 00:42:14,080 וזה בגלל שViewController הוא מיכל לתצוגה. 792 00:42:14,080 --> 00:42:19,490 אז, יש לו רכוש נוף, אשר אז יש לו צבע רקע. 793 00:42:19,490 --> 00:42:25,510 >> וכן, אני יכול להגדיר את זה, סוג של עייפה, על ידי קורא את הצבע 794 00:42:25,510 --> 00:42:28,130 על אובייקט UIColor. 795 00:42:28,130 --> 00:42:33,210 לכן, הודעה כאן, redColor היא שיטה. 796 00:42:33,210 --> 00:42:36,750 זו שיטה ברמה של UIcolor. 797 00:42:36,750 --> 00:42:40,820 כי אני לא צריך ליצור למשל בפועל של UIColor כדי 798 00:42:40,820 --> 00:42:42,020 לקרוא לשיטה על זה. 799 00:42:42,020 --> 00:42:45,050 אני פשוט, פשוט, קראתי לזה על שם כמו הסוג. 800 00:42:45,050 --> 00:42:49,620 אני, כמו, קראתי לזה בint, אם היה לי int, כמו, שיטה לזה, למשל. 801 00:42:49,620 --> 00:42:52,380 >> וכך, אם אנו מפעילים את הקוד הזה, אנחנו שם לב שהרקע הוא 802 00:42:52,380 --> 00:42:53,540 בעצם לא אדום. 803 00:42:53,540 --> 00:42:54,790 זה עדיין לבן. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 ואיך אנחנו יכולים לעקוף את זה הוא, שים לב איך יש self.window. 806 00:43:04,550 --> 00:43:08,260 כלומר, כמו, המכל האולטימטיבי עבור היישום שלך. 807 00:43:08,260 --> 00:43:11,630 זה הדבר האולטימטיבי שמכיל כל מה שעל המסך, ל 808 00:43:11,630 --> 00:43:13,650 iPhone או יישום iPad. 809 00:43:13,650 --> 00:43:20,970 >> וגם, בנוחות, self.window יש הנכס הזה שנקרא 810 00:43:20,970 --> 00:43:22,650 rootViewController. 811 00:43:22,650 --> 00:43:26,480 וזה הולך להיות המצביע בקר הצפייה הראשון בתוך 812 00:43:26,480 --> 00:43:27,270 של היישום שלך. 813 00:43:27,270 --> 00:43:32,000 אז, מה שאנחנו רוצים לעשות כאן, עכשיו, הוא כדי לקבוע ששווה לניווט שלנו 814 00:43:32,000 --> 00:43:32,710 הבקר. 815 00:43:32,710 --> 00:43:33,760 נכון? 816 00:43:33,760 --> 00:43:37,490 כי, מבחינה טכנית, ניווט הבקר הוא התצוגה הראשונה שלנו 817 00:43:37,490 --> 00:43:38,770 הבקר. 818 00:43:38,770 --> 00:43:46,160 היא עוקבת אחר מערך מבט אחר בקרים, ואנחנו דחפתי את זה 819 00:43:46,160 --> 00:43:49,810 בקר מבט לתוך המערך ש בבקר הניווט. 820 00:43:49,810 --> 00:43:52,640 >> אז, אתה לא רוצה לעשות את זה. 821 00:43:52,640 --> 00:43:54,225 כי לא באמת אעזור לך. 822 00:43:54,225 --> 00:43:58,040 אתה רוצה לעשות את זה, אם אתה רוצה לעשות בקר ניווט, שבה רוב 823 00:43:58,040 --> 00:44:01,100 שלך יהיה כנראה בגלל שאתה רוצה ל, בערך, יש להם איזושהי, 824 00:44:01,100 --> 00:44:04,840 כמו, תפריט לחזור לחלק או דף הבית של לחזור ל, ולא 825 00:44:04,840 --> 00:44:05,470 מסך ריק. 826 00:44:05,470 --> 00:44:05,920 כן? 827 00:44:05,920 --> 00:44:11,460 >> קהל: האם זה לא נוח כדי שתוכלו להתמקד על - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: כן. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 אז, כן. 831 00:44:15,720 --> 00:44:22,370 זהו הקוד, ועכשיו בואו לבדוק את זה. 832 00:44:22,370 --> 00:44:27,920 >> לכן, יש לנו ללכת. 833 00:44:27,920 --> 00:44:29,170 קסם. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 אז בסדר. 836 00:44:32,690 --> 00:44:34,420 תודה. 837 00:44:34,420 --> 00:44:35,000 על אישור. 838 00:44:35,000 --> 00:44:38,690 אז עכשיו, מה שאנחנו רוצים לעשות הוא - כן, אנחנו מוגבלים סוג של, כאן, נכון? 839 00:44:38,690 --> 00:44:45,130 אנו עלול לכתוב את הכל בתוך פונקציה אחת זה. 840 00:44:45,130 --> 00:44:48,470 אבל, זה לא איך פיתוח iOS בדרך כלל עובד. 841 00:44:48,470 --> 00:44:53,030 >> לכן, מה שאנחנו הולכים לעשות זה, אנחנו הולך ליצור כמה קבצים חדשים. 842 00:44:53,030 --> 00:44:57,110 אבל, באופן ספציפי יותר, אנחנו הולכים ליצור עוד כיתת Objective-C, או 843 00:44:57,110 --> 00:44:58,010 אובייקט אחר - 844 00:44:58,010 --> 00:45:00,700 בכיתה וחפצים ניתנים להחלפה כאן. 845 00:45:00,700 --> 00:45:06,460 וגם, הנה איך שאני יכול, באופן פוטנציאלי, ליצור סוג אחר של בקרי U. 846 00:45:06,460 --> 00:45:12,030 >> אז, זה תת רמה, כמו שתשימו לב, כאן, זה תת רמה של 847 00:45:12,030 --> 00:45:15,910 בקר תצוגת ממשק משתמש, אבל אני יכול קורא לזה בכל שם אחר כאן. 848 00:45:15,910 --> 00:45:19,400 אני יכול להתקשר לCS50 זה, אני יכול לקרוא בקר השקפה זו, אני יכול לקרוא 849 00:45:19,400 --> 00:45:21,640 בקר תצוגה זו בלה - 850 00:45:21,640 --> 00:45:22,400 כל דבר שאני רוצה. 851 00:45:22,400 --> 00:45:24,140 זה רק שם לכיתה. 852 00:45:24,140 --> 00:45:27,020 עם זאת, זה הולך להיות חשוב כי, בעצם, מה שאני עושה 853 00:45:27,020 --> 00:45:29,720 כאן הוא, אני יוצר שם מחלקה אחרת. 854 00:45:29,720 --> 00:45:34,140 אז, זה הולך להיות, כמו, חלק סוג של סוג או אובייקט. 855 00:45:34,140 --> 00:45:35,910 לכן, זה צריך להיות קצת גנרי. 856 00:45:35,910 --> 00:45:37,225 זה לא הולך להיות מאוד ספציפי. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> וגם, אני רוצה להצביע מתוך שתי אפשרויות אלה. 859 00:45:44,480 --> 00:45:48,430 בגלל שאנחנו עושים כל מה שבתוך קוד, לפעמים זה הרבה יותר קל 860 00:45:48,430 --> 00:45:53,540 להביא בקובץ ממשק, כך ש אני יכול, פשוטו כמשמעו, לגרור ולשחרר, כמו 861 00:45:53,540 --> 00:45:54,960 שעשינו קודם לכן עם לוח תכנון - 862 00:45:54,960 --> 00:45:57,810 מכיר אותך, תווית, או כפתור, או כל דבר אחר. 863 00:45:57,810 --> 00:46:01,950 וכך, xibs הם קבצים המאפשרים לך אתה עושה את זה, ויש לי לחבר אותו 864 00:46:01,950 --> 00:46:04,310 לקובץ הבקר תצוגה זו. 865 00:46:04,310 --> 00:46:06,540 >> לכן, אני הולך בכוונה לא בדק את זה. 866 00:46:06,540 --> 00:46:12,510 בדרך כלל הייתי לבדוק את זה, ואם אני רק עשיתי את זה עבור iPhone או iPad, אני 867 00:46:12,510 --> 00:46:16,340 יבדוק את זה ופשוט צריך אחד ל, אתה יודע, ה-iPhone או iPad. 868 00:46:16,340 --> 00:46:19,750 אבל מאז שאני עושה אוניברסלי, אני הולך כדי ליצור שניים מאלה מאוחר יותר. 869 00:46:19,750 --> 00:46:22,220 לכן, אני הולך בכוונה בטל את זה. 870 00:46:22,220 --> 00:46:23,940 >> זה גם ממש חשוב. 871 00:46:23,940 --> 00:46:27,490 הרבה פעמים, היה לי באגים שבו זה לא נבדק. 872 00:46:27,490 --> 00:46:31,930 וכך, כמובן, בקובץ זה הוא לא, סוג של, כמו, כלול או מיובא 873 00:46:31,930 --> 00:46:33,740 בתוך התיקייה את המבחן הזה. 874 00:46:33,740 --> 00:46:38,180 וכך, הקוד שלי יש שום מושג על קיומו של קובץ זה, ו 875 00:46:38,180 --> 00:46:41,080 שגורם להרבה כאב ושעות של ניפוי שגיאות. 876 00:46:41,080 --> 00:46:44,360 אבל, רק לוודא שזו מסומנת כך כי, אתם יודעים, המטרה של זה 877 00:46:44,360 --> 00:46:47,510 קובץ הוא ליישום זה. 878 00:46:47,510 --> 00:46:48,310 >> על אישור. 879 00:46:48,310 --> 00:46:51,680 אז, עכשיו אנחנו כבר יצרנו שני קבצים חדשים. 880 00:46:51,680 --> 00:46:54,050 וקבצים אלה נראים די ריקים. 881 00:46:54,050 --> 00:46:59,550 וזה, בעצם, בואו גם נמשיך על ידי יצירת קבצי xib. 882 00:46:59,550 --> 00:47:03,690 אז, בעבר, הייתי ב הנפתח Touch הקקאו. 883 00:47:03,690 --> 00:47:06,880 עכשיו, אני הולך להיכנס למשתמש ממשק מגע, וכמו שאתה יכול לראות, אני 884 00:47:06,880 --> 00:47:08,120 ניתן ליצור לוח תכנון. 885 00:47:08,120 --> 00:47:11,710 >> לכן, גם אני התחלתי עם ריק יישום, אני עדיין יכול להשתמש 886 00:47:11,710 --> 00:47:12,340 לוח תכנון. 887 00:47:12,340 --> 00:47:15,480 אמנם, זה נהיה מסובך במונחים של איך אתה רוצה להתחבר 888 00:47:15,480 --> 00:47:16,820 כי לקוד שלך. 889 00:47:16,820 --> 00:47:18,230 לכן, אני לא הולך לשם. 890 00:47:18,230 --> 00:47:22,160 >> אבל, מה שאנחנו רוצים לעשות כרגע הוא ליצור תצוגה. 891 00:47:22,160 --> 00:47:25,720 ואתה יכול לבחור עבור iPhone או iPad. 892 00:47:25,720 --> 00:47:30,180 ובדרך כלל, כדי לציין את הבדל - אם אתה עושה 893 00:47:30,180 --> 00:47:31,950 יישום אוניברסלי - 894 00:47:31,950 --> 00:47:35,980 אתה גם לשים את ה-iPhone תחתון, או שאתה יכול לעשות Twiddly. 895 00:47:35,980 --> 00:47:36,980 זה לא משנה באמת. 896 00:47:36,980 --> 00:47:40,890 זה פשוט כדי שתוכל לבדל שמבט הוא על איזה מכשיר. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> וכך, עכשיו נראה. 899 00:47:44,430 --> 00:47:47,550 יש לי מסך שאני יכול לעבוד איתו. 900 00:47:47,550 --> 00:47:53,530 וכך, לדוגמא, אני יכול לשים את תווית כאן, אתה יודע, ואני יכול גם לשים 901 00:47:53,530 --> 00:47:54,820 כפתור אחר כאן. 902 00:47:54,820 --> 00:47:58,730 אני לא יטריד את שינוי הערכים כאן. 903 00:47:58,730 --> 00:48:09,050 >> אבל, מה שחושב כאן הוא כי הבעלים של הקובץ - 904 00:48:09,050 --> 00:48:13,660 כן, אני פנימי של ה-iPhone נוף, קובץ xib-iPhone. 905 00:48:13,660 --> 00:48:18,050 ולמטה באזור ניווט זה או תפריט הנפתח, אני רוצה ללכת ל 906 00:48:18,050 --> 00:48:19,090 הבעלים של הקובץ. 907 00:48:19,090 --> 00:48:22,630 וזה באמת צעד חשוב כאן. 908 00:48:22,630 --> 00:48:27,780 אני רוצה להפוך את התצוגה בכיתה הבקר, כך שקובץ xib זה 909 00:48:27,780 --> 00:48:30,030 הולך להיות מזוהים עם בקר המבט שלי. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 וכל דבר שאני עושה בתוך המבט שלי בקר באמצעות תכנות הוא 912 00:48:39,360 --> 00:48:42,800 הולך להיות משתקף כאן. 913 00:48:42,800 --> 00:48:46,270 >> אז, עם זאת, שים לב כי - 914 00:48:46,270 --> 00:48:55,995 בעצם, בואו נעשה את השקפה זו רקע כחול, למשל. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 או ירוק. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 ולאחר מכן, כך שאם תשים לב, בגב ב את הקוד הזה, זה שבו הגענו לשלנו 919 00:49:07,950 --> 00:49:09,200 בקר ניווט. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> למרות שאנחנו עשינו את הצעד הזה, זה עדיין הולך להיות אדום, לא ירוק. 922 00:49:18,310 --> 00:49:20,350 ויש סיבה למה. 923 00:49:20,350 --> 00:49:28,090 זה בגלל שכאשר אנו inited בקר לדעתנו, כאן - 924 00:49:28,090 --> 00:49:30,010 מצטער, זה קצת מטורף - 925 00:49:30,010 --> 00:49:34,520 כאשר אנו inited הבקר המבט שלנו כאן, אנו inited זה מהסוג הכללי 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 בסדר? 928 00:49:36,560 --> 00:49:40,560 אז אנחנו אפילו לא לעשות זה עם זה בכיתה. 929 00:49:40,560 --> 00:49:42,030 >> אז תזכור, זה כמו בכיתה עכשיו. 930 00:49:42,030 --> 00:49:47,160 זה יכול להיחשב כסוג, רק כUIViewController הוא סוג. 931 00:49:47,160 --> 00:49:51,080 וכדי להשתמש בו, מה אנחנו צריכים לעשות הוא לייבא אותו - 932 00:49:51,080 --> 00:49:52,520 ViewController יבוא - 933 00:49:52,520 --> 00:49:55,750 ו, כפי שאתה יכול לראות, זה autofills את זה בשבילי. 934 00:49:55,750 --> 00:49:56,570 אז, ViewController - 935 00:49:56,570 --> 00:50:02,070 ועכשיו, הנה, אני יכול לשנות את זה UIViewController לViewController. 936 00:50:02,070 --> 00:50:05,050 ועכשיו, הנה, אני יכול לשנות זה כדי ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> בואו נריץ את זה שוב. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 זה עדיין אדום. 941 00:50:19,690 --> 00:50:23,370 והסיבה למה זה עדיין הוא אדום כי - 942 00:50:23,370 --> 00:50:26,230 woah, מה קרה שם? 943 00:50:26,230 --> 00:50:31,500 רצינו לשייך xib זה להגיש עם בקר התצוגה. 944 00:50:31,500 --> 00:50:37,540 עם זאת, על מנת לעשות בעצם כי, אנחנו צריכים להיכנס לזה. 945 00:50:37,540 --> 00:50:42,980 וכאשר אנו עושים init, שאנחנו רוצים לעשות initWithNibName, ולאחר מכן אנחנו רוצים 946 00:50:42,980 --> 00:50:48,910 לעשות View_iPhone המחרוזת ב, למשל. 947 00:50:48,910 --> 00:50:51,700 אתה יכול להתעלם מהצרור כאן. 948 00:50:51,700 --> 00:50:54,965 >> וזה הולך כדי לאפשר לנו, בעצם - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 אה אה, יש בעיה. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 נכון. 953 00:51:09,980 --> 00:51:17,670 >> וכן, יש בעיה, כי, ב קובץ xib המבט שלנו, יש לנו תווית ו 954 00:51:17,670 --> 00:51:18,720 יש לנו כפתור. 955 00:51:18,720 --> 00:51:23,660 עם זאת, למרות שאנחנו כבר מחוברים שני אלה, אין שום דבר בתוך 956 00:51:23,660 --> 00:51:27,440 ViewController.h או ViewController.m שמשקפים את אלו 957 00:51:27,440 --> 00:51:29,160 כפתורים או מדבקות אלה. 958 00:51:29,160 --> 00:51:32,425 לכן, אנחנו צריכים לכתוב אותם כב מאפיינים של הבקר התצוגה. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> אז, זה איך אתה מצהיר רכוש. 961 00:51:39,490 --> 00:51:43,422 זה לוקח ב, בדרך כלל, שתי אפשרויות אלה. 962 00:51:43,422 --> 00:51:48,690 לענייננו, והסמינר הזה, הייתי אומר כי, באופן כללי, 963 00:51:48,690 --> 00:51:52,250 רוב הנכסים הם nonatomic ולשמר. 964 00:51:52,250 --> 00:51:55,420 אתה יכול לקרוא על ידי גוגל בחיפוש, מכיר אותך, את ההבדל בין 965 00:51:55,420 --> 00:51:58,620 nonatomic ולשמור על, אתה יודע, גוגל או משהו. 966 00:51:58,620 --> 00:52:01,090 ואני אקח אותך ל, כמו, סטאק גלישה, שבו אנשים יהיו לי 967 00:52:01,090 --> 00:52:03,605 תשובות להבדלים בין אלה. 968 00:52:03,605 --> 00:52:07,000 אבל לעת עתה, זה מה שאנחנו רוצה להיות מודאג עם. 969 00:52:07,000 --> 00:52:12,790 >> ואנחנו רוצים לעשות תווית ממשק משתמש, כוכב, ואנחנו יכולים לקרוא לזה מה שאנחנו רוצים. 970 00:52:12,790 --> 00:52:15,710 אנחנו יכולים לקרוא לזה, אתה יודע, תווית. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 ו, ניצור עוד אחד לכפתור. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 ולזכור לכלול את הכוכבית, עם מצביעים, כי אנו עוסקים 975 00:52:29,910 --> 00:52:36,740 פחות או יותר בכל מקום בפנים של Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> עם זאת, זה עדיין לא יפתור הבעיה, כפי שאתה יכול לראות כאן. 977 00:52:42,110 --> 00:52:50,540 והסיבה לכך היא, כל פעם שאנחנו רוצה להתחבר תווית קובץ xib או 978 00:52:50,540 --> 00:52:55,690 לחצן לתכנית, או את הכותרת וקובץ יישום, אנחנו רוצים 979 00:52:55,690 --> 00:52:58,255 להוסיף קטע קוד הזה - 980 00:52:58,255 --> 00:53:00,610 שקע. 981 00:53:00,610 --> 00:53:03,600 שים לב שזה מילת מפתח. 982 00:53:03,600 --> 00:53:07,970 >> וגם, ברגע שאני אסיים להקליד שיצא, זה צריך להיות אלה 983 00:53:07,970 --> 00:53:09,100 שני עיגולים, כאן. 984 00:53:09,100 --> 00:53:11,200 בדרך כלל, הם לא מלאים פנימה 985 00:53:11,200 --> 00:53:12,920 אני לא בטוח למה שהם. 986 00:53:12,920 --> 00:53:21,370 אבל בדרך כלל, יהיה לך באופן ידני לחבר אותם על ידי לחיצה על הצד הזה של 987 00:53:21,370 --> 00:53:23,530 אזור השירות. 988 00:53:23,530 --> 00:53:28,430 >> וכך, ברגע זה, יש לי התווית שלי נבחר, ואני רוצה לגרור את זה חדש 989 00:53:28,430 --> 00:53:33,910 התייחסות לשקע לבעלים של הקובץ שלי, ולאחר מכן לחץ על תווית. 990 00:53:33,910 --> 00:53:40,230 אז עכשיו, סוף סוף, תווית זו היא מחובר לתווית זו. 991 00:53:40,230 --> 00:53:44,950 ותווית זה מה שאנחנו הולכים להשתמש באופן שיטתי אל לשנותה 992 00:53:44,950 --> 00:53:49,250 טקסט, גופנה, הרקע שלה צבע, וכולי. 993 00:53:49,250 --> 00:53:52,430 >> אז, למה שלא נעשינו את אותו דבר עבורן? 994 00:53:52,430 --> 00:53:54,770 וכמו שאתה תשים לב, ללחץ, זה קצת יותר מסובך. 995 00:53:54,770 --> 00:53:59,060 כי, כלומר, אתה אתה אמור הקש על לחצן, ולכן יש לה הרבה 996 00:53:59,060 --> 00:54:02,950 אפשרויות לכמה משתמשים ניתן ללחוץ על כפתור. 997 00:54:02,950 --> 00:54:06,570 ולאחר מכן, אנו נראים בהמשך כי אנו יכולים להתחבר לזה שלנו 998 00:54:06,570 --> 00:54:09,140 קוד כדי לגרום לזה לעבוד. 999 00:54:09,140 --> 00:54:12,770 >> לכן, לעת עתה אם כי, אנחנו רוצים להתחבר אותו ללחצן בפועל 1000 00:54:12,770 --> 00:54:13,570 בתוך הקוד שלנו. 1001 00:54:13,570 --> 00:54:19,640 אז אנחנו הולכים לפורקן התייחסות החדש, ולאחר מכן לעשות אותן. 1002 00:54:19,640 --> 00:54:22,068 עכשיו, בואו נריץ את זה שוב. 1003 00:54:22,068 --> 00:54:23,040 אה אה. 1004 00:54:23,040 --> 00:54:23,890 על אישור. 1005 00:54:23,890 --> 00:54:25,140 אני לא יודע מה קורה כאן עכשיו. 1006 00:54:25,140 --> 00:54:48,450 1007 00:54:48,450 --> 00:54:49,700 וואו. 1008 00:54:49,700 --> 00:54:57,380 1009 00:54:57,380 --> 00:54:58,960 רק רגע, כאן. 1010 00:54:58,960 --> 00:55:02,490 >> בעצם, למה שלא ניקח את להסתכל על דוגמא נוספת ב 1011 00:55:02,490 --> 00:55:05,800 העניין של זמן. 1012 00:55:05,800 --> 00:55:06,200 על אישור. 1013 00:55:06,200 --> 00:55:10,610 אז, הנה מוכן יותר בקלות דוגמא לViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 כפי שאתם יכולים לראות כאן, צירפתי המאפיינים עבור 1016 00:55:17,110 --> 00:55:18,460 תווית והכפתור. 1017 00:55:18,460 --> 00:55:20,370 ואז, זה חתיכת הקוד כאן - 1018 00:55:20,370 --> 00:55:21,830 IBaction זה - 1019 00:55:21,830 --> 00:55:27,740 היה קשר ללחצן זה כאן. 1020 00:55:27,740 --> 00:55:33,940 אז כפי שאתם יכולים לראות כאן, מגע בפנים מחובר לבורר 1021 00:55:33,940 --> 00:55:37,390 לחצן שנקרא לחוץ. 1022 00:55:37,390 --> 00:55:41,700 >> לכן, אנחנו יכולים למעשה לעבור את תנועה שוב, כאן, על ידי לקיחת Touch Up 1023 00:55:41,700 --> 00:55:48,750 בתוכו וגרירתו ל הבעלים של הקובץ, ולאחר מכן 1024 00:55:48,750 --> 00:55:51,570 לחץ על כפתור לחוץ. 1025 00:55:51,570 --> 00:55:52,820 עכשיו, בואו להפעיל הקוד שלנו. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 אז עכשיו, לחצן זה עכשיו עובד ו ייקח אותנו לדף הבא. 1028 00:56:02,020 --> 00:56:08,430 >> וגם, במונחים של בקר המבט שלנו, זה חתיכת הקוד שלקח 1029 00:56:08,430 --> 00:56:10,000 אכפת הכפתור הלחוץ. 1030 00:56:10,000 --> 00:56:14,260 וזה חשוב לציין כאן, כי יצרתי סוג אחר של מבט 1031 00:56:14,260 --> 00:56:16,330 בקר נקרא שולחן בקר תצוגה. 1032 00:56:16,330 --> 00:56:19,900 אז, זה היה דומה לגיבוי ב לוח תכנון, כשגררתי את אחד 1033 00:56:19,900 --> 00:56:23,450 בקרי תצוגת הטבלה הבאים ללוח התכנון. 1034 00:56:23,450 --> 00:56:24,470 אני יוצר עוד 1035 00:56:24,470 --> 00:56:30,000 >> מצביע אל הבקר תצוגת טבלה, alloc וinit-ing אותו, ולאחר מכן עושה 1036 00:56:30,000 --> 00:56:34,490 בקר ניווט נקודה עצמית, לדחוף ViewController, זה חדש 1037 00:56:34,490 --> 00:56:35,350 viewController. 1038 00:56:35,350 --> 00:56:39,750 ואני קבעתי לאנימציה כן, כי עכשיו בתוך האפליקציה שלי, ואני 1039 00:56:39,750 --> 00:56:45,670 רוצה לראות בעצם האנימציה הולכת מהעמוד הבית לשולחן 1040 00:56:45,670 --> 00:56:46,920 בקר תצוגה. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> קהל: האם אתה עדיין לדאוג על איסוף אשפה? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: מה זה? 1044 00:56:51,840 --> 00:56:54,740 לא. 1045 00:56:54,740 --> 00:56:58,970 לכן, השאלה הייתה, האם יש לך לעבוד עם איסוף אשפה? 1046 00:56:58,970 --> 00:57:03,470 אז, 4 Xcode היה כמו ARC, שהוא ספירת התייחסות אוטומטית. 1047 00:57:03,470 --> 00:57:06,120 וכך, בדרך כלל כשאתה מתחיל חדש פרויקט, היית לבדוק את זה, כי 1048 00:57:06,120 --> 00:57:09,440 אף אחד לא באמת רוצה להתמודד עם לשחרר את הזיכרון וכאלה. 1049 00:57:09,440 --> 00:57:13,720 אבל אני חושב בXcode 5, אין אפילו האפשרות כי על הפרויקט החדש. 1050 00:57:13,720 --> 00:57:16,750 אז, זה באופן אוטומטי עושה את זה בשבילך. 1051 00:57:16,750 --> 00:57:16,920 כן? 1052 00:57:16,920 --> 00:57:20,970 >> קהל: אתה יכול לייצא PDF בלוח התכנון שלך? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: כן, בהחלט. 1054 00:57:22,020 --> 00:57:28,180 לכן, כל אלה ייכללו ב קוד המקור, כך שאתם יכולים לבדוק את 1055 00:57:28,180 --> 00:57:30,730 פרויקט Xcode בפועל עבור זה. 1056 00:57:30,730 --> 00:57:31,105 כן? 1057 00:57:31,105 --> 00:57:35,944 >> קהל: אבל, אני מתכוון, כאילו, אני יכול להדפיס PDF עם לוח התכנון שלי? 1058 00:57:35,944 --> 00:57:38,920 אם אני רק רוצה לייצא תמונות להראות למישהו. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: אה, כן. 1060 00:57:39,160 --> 00:57:41,980 אני חושב, שאולי, רק אתה יכול לקחת צילום מסך. 1061 00:57:41,980 --> 00:57:44,350 כן, ולשלוח אותם מסך זריקה או משהו. 1062 00:57:44,350 --> 00:57:45,600 כן. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> אז, בואו נראה. 1065 00:57:50,570 --> 00:57:56,470 בעניין של זמן, אני חושב זה כל מה שאני יכול לכסות היום. 1066 00:57:56,470 --> 00:57:59,600 אבל, אני יודע שזה, בעצם, רק בקושי נוגע במשטח של iOS 1067 00:57:59,600 --> 00:58:00,370 פיתוח. 1068 00:58:00,370 --> 00:58:05,630 אז, אנא אל תהסס לפנות אלי אם יש לך שאלות על iOS 1069 00:58:05,630 --> 00:58:07,000 פיתוח. 1070 00:58:07,000 --> 00:58:12,840 וגם, בתקווה, אני אהיה מסוגל לנקות על חלק מהקוד למקור 1071 00:58:12,840 --> 00:58:16,830 קבצי קוד, כך שיהיה לך כמה דוגמאות ממש נחמדים לעבוד איתו. 1072 00:58:16,830 --> 00:58:21,020 >> חוץ מזה, אם אתם הולכים לHackathon CS50, אני יכול או 1073 00:58:21,020 --> 00:58:25,730 לא יהיה שם, ואני יכול לעזור עם כמה פיתוח iOS, יותר מדי. 1074 00:58:25,730 --> 00:58:26,980 אז, תודה רבה, חבר 'ה. 1075 00:58:26,980 --> 00:58:31,168