1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU หลิว: Hey, วิธีการคือ มันไปทุกคนหรือไม่ 3 00:00:13,590 --> 00:00:20,250 และนี่คือ iOS App การเขียนโปรแกรมของการสัมมนาควัตถุประสงค์ 4 00:00:20,250 --> 00:00:21,520 ชื่อของฉันคือ Tianyu หลิว 5 00:00:21,520 --> 00:00:26,114 ฉันจูเนียร์โลเวลล์ตอนนี้ มุ่งเน้นในสาขาวิทยาศาสตร์คอมพิวเตอร์ 6 00:00:26,114 --> 00:00:28,030 ดังนั้นในการสัมมนาครั้งนี้ฉัน จะสอนพวกคุณ 7 00:00:28,030 --> 00:00:30,770 นิด ๆ หน่อย ๆ เกี่ยวกับวิธีการที่จะทำให้การตรวจสอบ 8 00:00:30,770 --> 00:00:33,030 ยายได้รับความตื่นเต้นสำหรับมัน 9 00:00:33,030 --> 00:00:36,790 >> ดังนั้นก่อนที่เราจะเริ่มต้นการดำน้ำ ในด้านการเขียนโปรแกรมที่เกิดขึ้นจริง 10 00:00:36,790 --> 00:00:41,840 ขอเพียงแค่ได้อย่างรวดเร็วจริงๆพูดคุยเกี่ยวกับ ทำไมคุณอาจต้องการที่จะสร้างแอป iOS? 11 00:00:41,840 --> 00:00:43,940 iOS ของคุณคือเหตุผลที่น่ากลัวเหรอ? 12 00:00:43,940 --> 00:00:47,250 ดังนั้นปัญหาแรกเป็นครั้งแรก สิ่งที่สวยน่ากลัวสำหรับเรา 13 00:00:47,250 --> 00:00:51,190 โดยเฉพาะอย่างยิ่ง CS50 นักเรียนคือ iOS ของคุณ 14 00:00:51,190 --> 00:00:55,860 ใช้วัตถุประสงค์ C. ดีมี ภาษาใหม่ที่เรียกว่าสวิฟท์, 15 00:00:55,860 --> 00:00:58,260 แต่เราไม่ได้ไป ที่ใช้ในการสัมมนาครั้งนี้ 16 00:00:58,260 --> 00:01:01,540 หากคุณสนใจในสวิฟท์มี เป็นงานสัมมนาเกี่ยวกับการที่เป็นอิสระ 17 00:01:01,540 --> 00:01:05,590 แต่วัตถุประสงค์ C เป็นพื้น ซูเปอร์ซีความหมาย 18 00:01:05,590 --> 00:01:10,230 ทุกอย่างที่คุณใช้ใน C สามารถ สามารถแปลเป็​​นวัตถุประสงค์ C 19 00:01:10,230 --> 00:01:11,630 ได้อย่างง่ายดายมาก 20 00:01:11,630 --> 00:01:15,730 >> ในขณะที่คุณอาจจะได้เห็นต่อไปว่าแน่นอน มีบางไวยากรณ์พื้นฐานมากเป็น 21 00:01:15,730 --> 00:01:19,790 พื้นตรงเดียวกัน C และวัตถุประสงค์ C. ดังนั้น 22 00:01:19,790 --> 00:01:22,860 เนื่องจากคุณได้นำ CS50 ขึ้นมาไกลขนาดนี้แล้วคุณ 23 00:01:22,860 --> 00:01:26,500 ทราบวัตถุประสงค์ C อย่างน้อย 40% 24 00:01:26,500 --> 00:01:30,720 นอกจากนี้แอปเปิ้ลมีจริงๆ ที่แข็งแกร่ง API สำหรับ iOS 25 00:01:30,720 --> 00:01:33,750 มีจำนวนมากบ้าจริงๆมี สิ่งที่คุณสามารถทำอะไรกับมัน 26 00:01:33,750 --> 00:01:36,760 ซึ่งหนึ่งในนั้นคือคน สร้างขึ้นจริงแอป iOS 27 00:01:36,760 --> 00:01:40,600 สำหรับการควบคุมรถที่ เป็นที่น่าสนใจสวย 28 00:01:40,600 --> 00:01:42,610 น่าจะเป็นเฮลิคอปเตอร์เป็นที่น่าตื่นเต้นมากขึ้น 29 00:01:42,610 --> 00:01:47,020 แต่นั่นเป็นวิธีที่มีประสิทธิภาพ iOS ของ API สามารถ 30 00:01:47,020 --> 00:01:49,340 >> และในขณะที่คุณอาจมี คิดออกตอนนี้ 31 00:01:49,340 --> 00:01:53,000 กองล้นอาจเป็นหนึ่งใน แหล่งข้อมูลออนไลน์ที่สำคัญที่สุด 32 00:01:53,000 --> 00:01:54,250 ที่มีให้คุณ 33 00:01:54,250 --> 00:01:58,090 และข่าวที่ดีสำหรับทุก ปัญหาเดียวที่คุณสามารถเป็นไปได้ 34 00:01:58,090 --> 00:02:01,840 คิดว่าในขณะที่อาคารของคุณ โครงการสุดท้ายในวัตถุประสงค์ C, 35 00:02:01,840 --> 00:02:05,910 มีแนวโน้มตอบกองล้น 36 00:02:05,910 --> 00:02:07,420 มันน่ากลัวเพียง 37 00:02:07,420 --> 00:02:12,780 นอกเหนือจากนั้น iOS ของคุณเป็นจริงแพลตฟอร์ม 38 00:02:12,780 --> 00:02:16,260 ที่คุณสามารถเข้าถึงมาก ผู้ชมมีความพยายามน้อย 39 00:02:16,260 --> 00:02:20,170 มันไม่เหมือน Android ที่ ทุกอย่างมีการกระจายตัวสวย 40 00:02:20,170 --> 00:02:22,540 >> ทุกอย่าง iOS ของคุณเป็นแบบครบวงจร 41 00:02:22,540 --> 00:02:25,920 และตราบใดที่คุณสร้าง app สำหรับ iPhone, 42 00:02:25,920 --> 00:02:31,260 คุณได้อย่างง่ายดายสามารถพอร์ตนั้นเพื่อ iPad, มินิ iPad, iPhone หรือขนาดที่แตกต่างกัน 43 00:02:31,260 --> 00:02:33,050 เหล่านี้ล้วนเป็นความสะดวกสบายจริงๆ 44 00:02:33,050 --> 00:02:36,430 และเป็นเพียงที่ดีจริงๆ สำหรับสร้างความประทับใจให้เพื่อนของคุณ 45 00:02:36,430 --> 00:02:38,920 คุณก็สามารถถือ iPhone และบอกเพื่อนของคุณเดี๋ยวก่อน 46 00:02:38,920 --> 00:02:40,250 นี้เป็น app ที่ผมทำ 47 00:02:40,250 --> 00:02:43,860 คุณสามารถทำที่ใด ปพลิเคชันสก์ท็อปซึ่งเป็นสิ่งที่ดี 48 00:02:43,860 --> 00:02:48,870 >> ทั้งหมดขวาตอนนี้ขอได้รับจริง เป็นภาษาวัตถุประสงค์ C. 49 00:02:48,870 --> 00:02:52,910 ดังนั้นทำไมเราไม่เริ่มต้นด้วย บางไวยากรณ์พื้นฐานจริงๆ 50 00:02:52,910 --> 00:02:57,410 ที่ผมกล่าวถึงก่อนวัตถุประสงค์ C มันเป็นพื้นซูเปอร์ซี 51 00:02:57,410 --> 00:03:01,860 ดังนั้นจำนวนมากไวยากรณ์พื้นฐานเป็น จริงตรงเดียวกัน 52 00:03:01,860 --> 00:03:06,150 ประกาศตัวแปรและ เพิ่มตัวแปรทั้งสองเข้าด้วยกัน 53 00:03:06,150 --> 00:03:09,440 เป็นสิ่งที่เราได้ทำในมาริโอ 54 00:03:09,440 --> 00:03:11,140 ไม่มีอะไรใหม่ที่นี่ 55 00:03:11,140 --> 00:03:17,370 >> ในทำนองเดียวกันอาศัยสำหรับวง และนอกจากนี้ยังมีสภาพเดียวกัน 56 00:03:17,370 --> 00:03:22,370 คุณสามารถทำห่วงเช่นเดียวกับคุณ ได้ทำในมาริโอ [ไม่ได้ยิน] 57 00:03:22,370 --> 00:03:26,280 และคุณสามารถทำเงื่อนไข เป็นเพียงสิ่งที่คุณ 58 00:03:26,280 --> 00:03:29,240 ได้รับการทำในชุดพีก่อนหน้าของคุณ 59 00:03:29,240 --> 00:03:33,400 อย่างไรก็ตามวัตถุประสงค์ C ไม่สมบูรณ์ซี 60 00:03:33,400 --> 00:03:36,640 และมีอะไรบางอย่างที่ เป็นชนิดของแปลก ๆ เกี่ยวกับเรื่องนี้ 61 00:03:36,640 --> 00:03:42,340 >> คนแรกที่ถูกว่าเมื่อคุณอยู่ ทำโปรแกรม C คุณมักจะเรียก 62 00:03:42,340 --> 00:03:46,310 รวมแล้วชื่อห้องสมุด 63 00:03:46,310 --> 00:03:49,860 แต่ในวัตถุประสงค์ C ที่คุณเรียกว่าการนำเข้า 64 00:03:49,860 --> 00:03:53,100 โดยทั่วไปการทำงานกล่าวว่า เพียงแค่ชื่อที่แตกต่างกัน 65 00:03:53,100 --> 00:03:55,940 และสตริงที่มี จริงนิด ๆ หน่อย ๆ แปลก 66 00:03:55,940 --> 00:03:58,250 คุณจะเห็นว่าเป็นครั้งแรก สิ่งที่เป็นชนิดของแปลก 67 00:03:58,250 --> 00:04:04,190 คือคุณต้องสวย weird-- sorry-- คุณมี NS แปลกสวย 68 00:04:04,190 --> 00:04:04,960 เข้าสู่ระบบที่นี่ 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 และสิ่งที่สอง ที่ชนิดของแปลก 71 00:04:09,160 --> 00:04:14,090 คือคุณต้องเข้าสู่ระบบก่อนที่ จริงประกาศสตริง 72 00:04:14,090 --> 00:04:19,209 ดังนั้นที่เข้าสู่ระบบโดยทั่วไปหมายถึง ที่สตริงไม่ได้เป็นเพียงสตริง 73 00:04:19,209 --> 00:04:20,880 มันเป็นจริงวัตถุ 74 00:04:20,880 --> 00:04:22,780 เรากำลังจะไปอธิบาย ที่ต่อมาจึงไม่ 75 00:04:22,780 --> 00:04:25,800 ความตื่นตระหนกถ้าคุณทำไม่ได้ เข้าใจสิ่งที่หมายถึง 76 00:04:25,800 --> 00:04:29,980 และการพิมพ์ไปยังคอนโซลเป็นนิด ๆ หน่อย ๆ แตกต่างกันเพราะใน C ที่เราเรียก printf, 77 00:04:29,980 --> 00:04:33,350 แต่ใน C วัตถุประสงค์ที่เราเรียกว่า [ไม่ได้ยิน] 78 00:04:33,350 --> 00:04:35,640 >> คุณอาจจะสงสัยว่าสิ่งที่เป็น 79 00:04:35,640 --> 00:04:38,070 นั่นคือพื้น printf, เพียงแค่ภาษาที่แตกต่างกัน 80 00:04:38,070 --> 00:04:41,370 ว่าการใช้งานเดียวกัน ว่าการทำงานเดียวกัน 81 00:04:41,370 --> 00:04:44,060 ดีมันกลับกลายเป็นว่า วัตถุประสงค์ C จริง 82 00:04:44,060 --> 00:04:50,040 มีคำนำหน้า ns ในเกือบ ทุกอย่างทุกชนิดข้อมูลพื้นฐาน 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary 84 00:04:52,690 --> 00:04:56,340 เหตุผลที่ว่า ns จริงยืนสำหรับขั้นตอนถัดไป 85 00:04:56,340 --> 00:04:59,980 ซึ่งเป็น บริษัท ที่ สตีฟจ็อบส์ได้ก่อตั้ง, 86 00:04:59,980 --> 00:05:03,960 ซึ่งเป็น บริษัท ที่ ภาษาวัตถุประสงค์ C เกิด 87 00:05:03,960 --> 00:05:06,140 ดังนั้นนี่คือประเพณีพื้น 88 00:05:06,140 --> 00:05:09,010 ฉันรู้ว่ามันนิด ๆ หน่อย ๆ แปลก แต่ก็เป็นแอปเปิ้ล 89 00:05:09,010 --> 00:05:16,840 >> ดังนั้นสิ่งที่จะยิ่งประหลาด กว่าที่มีการประกาศฟังก์ชัน 90 00:05:16,840 --> 00:05:22,600 นี้จะแตกต่างจากสิ่งที่เรา เห็นใน C เพราะที่นี่ก็จริง 91 00:05:22,600 --> 00:05:25,190 ดูไม่เหมือน C อีกต่อไป 92 00:05:25,190 --> 00:05:28,810 สิ่งที่คุณต้องตรงนี้โดย วิธีนี้ไม่ได้จุดที่กระสุน 93 00:05:28,810 --> 00:05:30,690 นี้เป็นสัญญาณลบ 94 00:05:30,690 --> 00:05:36,440 คุณมีวงเล็บเครื่องหมายลบ เป็นโมฆะแล้วชื่อฟังก์ชัน 95 00:05:36,440 --> 00:05:38,450 ขอเพียงบอกว่าถ้าเรา มีสวัสดีชาวโลกแล้ว 96 00:05:38,450 --> 00:05:42,820 ชนิดกลับจะถือเป็นโมฆะ เพราะเรากลับไม่มีอะไร 97 00:05:42,820 --> 00:05:44,680 >> สิ่งที่ได้รับแปลกจริงๆ คือว่าเมื่อคุณ 98 00:05:44,680 --> 00:05:49,580 มีมากกว่าหนึ่งพารามิเตอร์ ผ่านเข้าสู่ฟังก์ชั่นเดียวกันกับที่ 99 00:05:49,580 --> 00:05:53,870 จะแปลกจริงๆตามที่แสดงที่นี่ 100 00:05:53,870 --> 00:05:58,230 เรามีชื่อวิธีการ เรียกว่า addInt ไปที่ [ไม่ได้ยิน] 101 00:05:58,230 --> 00:06:00,370 และเรากำลังผ่านหนึ่งพารามิเตอร์ 102 00:06:00,370 --> 00:06:05,170 แต่หลังจากที่เรามี ชื่อวิธีเพิ่มเติมได้ที่โทรด้วย 103 00:06:05,170 --> 00:06:08,500 และหลังจากที่มีเรากำลังผ่าน พารามิเตอร์ที่สอง 104 00:06:08,500 --> 00:06:11,940 นี้เป็นจริงนิด ๆ หน่อย ๆ แปลก แต่ทั้งหมดเหล่านี้ประกาศฟังก์ชัน 105 00:06:11,940 --> 00:06:14,770 ตามรูปแบบที่เหมือนกันเช่นนี้ 106 00:06:14,770 --> 00:06:17,450 >> เรามีเครื่องหมายลบจะเริ่มต้นด้วย 107 00:06:17,450 --> 00:06:21,550 เครื่องหมายลบอาจเป็นสัญญาณบวก บางครั้งขึ้นอยู่กับชนิดของวิธีการ 108 00:06:21,550 --> 00:06:22,340 มันเป็น 109 00:06:22,340 --> 00:06:25,000 วิธีที่จะเป็นพื้น ชื่อฟังก์ชั่นอื่น 110 00:06:25,000 --> 00:06:26,760 และเรากำลังจะไป อธิบายว่าต่อมาเมื่อ 111 00:06:26,760 --> 00:06:30,580 เรากำลังพูดถึงเกี่ยวกับวัตถุ การเขียนโปรแกรมเชิง 112 00:06:30,580 --> 00:06:34,300 ขั้นแรกคุณระบุผลตอบแทน พิมพ์วงเล็บภายใน 113 00:06:34,300 --> 00:06:37,450 หลังจากที่มาชื่อวิธี 114 00:06:37,450 --> 00:06:40,310 คุณกำลังผ่านหนึ่งพารามิเตอร์ 115 00:06:40,310 --> 00:06:44,750 และถ้าคุณมีพารามิเตอร์เพิ่มเติม คุณจำเป็นต้องขยายชื่อวิธี 116 00:06:44,750 --> 00:06:46,770 และโดยทั่วไปเขียนอะไรบางอย่างเพิ่มเติมได้ที่นี่ 117 00:06:46,770 --> 00:06:48,090 >> มันอาจจะเป็นสิ่งที่คุณต้องการ 118 00:06:48,090 --> 00:06:50,140 ในกรณีของเราก็ด้วย 119 00:06:50,140 --> 00:06:56,160 แต่คุณอาจจะบอกว่าปลายหรือหรือหรือ abc บาร์เต็มรูปแบบสิ่งที่คุณต้องการ 120 00:06:56,160 --> 00:06:59,500 และแล้วหลังจากที่คุณ ผ่านขพารามิเตอร์ 121 00:06:59,500 --> 00:07:01,750 นี่คือแปลกจริงๆ การประชุม แต่เรามี 122 00:07:01,750 --> 00:07:05,800 จะเห็นว่าทำไมแอปเปิ้ลต้องการ จะทำอย่างนั้นอย่างรวดเร็ว 123 00:07:05,800 --> 00:07:10,530 ดังนั้นวิธีที่คุณเรียกฟังก์ชั่น? 124 00:07:10,530 --> 00:07:15,520 เรียกใช้ฟังก์ชันในวัตถุประสงค์ ซียังแตกต่างจากซี 125 00:07:15,520 --> 00:07:18,170 >> ที่จริงเรียก ฟังก์ชั่นในวัตถุประสงค์ C 126 00:07:18,170 --> 00:07:21,030 เป็นเหมือนที่คุณกำลังพูดคุยกับคน 127 00:07:21,030 --> 00:07:27,030 ที่นี่เรามีตัวเองซึ่ง ที่เรียกว่าวัตถุ 128 00:07:27,030 --> 00:07:33,830 คุณพื้นบอก วัตถุที่ตัวเองจะพูดว่า "Hello World!" 129 00:07:33,830 --> 00:07:36,830 นั่นคือวิธีการเรียกฟังก์ชั่น 130 00:07:36,830 --> 00:07:41,690 วัตถุและชื่อวิธี รวมกับคนอื่น ๆ 131 00:07:41,690 --> 00:07:49,600 และนี่คือที่นามสกุลแปลก สำหรับชื่อวิธีการจริงๆมาลงเล่น 132 00:07:49,600 --> 00:07:52,150 >> ลองดูที่ตัวอย่างที่สอง 133 00:07:52,150 --> 00:07:56,780 เราเพียงแค่กำหนดวิธีการที่เรียกว่า addInt กับ blah blah blah 134 00:07:56,780 --> 00:08:00,066 ดังนั้นในกรณีนี้เมื่อคุณโทร ที่เฉพาะเจาะจง [? ข้อความ?] มันจะ 135 00:08:00,066 --> 00:08:02,035 ให้มีลักษณะเหมือนตัวเอง addInt: 10 ด้วย: 2 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 มันเสียงเหมือนภาษาอังกฤษ 138 00:08:08,070 --> 00:08:11,980 แม้ว่าฟังก์ชั่น ประกาศฟังก์ชั่นที่แปลก 139 00:08:11,980 --> 00:08:15,600 จุดของวัตถุประสงค์ของ C รูปแบบการประกาศวิธีการ 140 00:08:15,600 --> 00:08:18,830 คือว่าเมื่อคุณโทร ฟังก์ชั่นหรือวิธีการ 141 00:08:18,830 --> 00:08:21,980 มันจะเสียงเหมือนภาษาอังกฤษที่เกิดขึ้นจริง 142 00:08:21,980 --> 00:08:25,270 ดังนั้นจึงเป็นงานง่ายมาก เมื่อคุณได้รับเป็นมัน 143 00:08:25,270 --> 00:08:28,740 >> โดยเฉพาะอย่างยิ่งในกรณีนี้ ที่คุณสามารถโดยทั่วไป 144 00:08:28,740 --> 00:08:33,010 เห็นว่าชื่อฟังก์ชั่นเป็น การเรียงลำดับของการบันทึกข้อมูลของตัวเอง 145 00:08:33,010 --> 00:08:35,390 คุณไม่จำเป็นต้องใด ๆ คำอธิบายเพิ่มเติมเพื่อดู 146 00:08:35,390 --> 00:08:42,770 ว่าสิ่งที่เกิดขึ้นสิ่งที่ ว่าหนึ่งพารามิเตอร์ทำ 147 00:08:42,770 --> 00:08:48,470 ไปไกลเกินกว่าที่เราจะมาพูดเล็ก ๆ น้อย ๆ เล็กน้อยเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ 148 00:08:48,470 --> 00:08:52,160 การเขียนโปรแกรมเชิงวัตถุ หนึ่งในการเขียนโปรแกรมพื้นฐาน 149 00:08:52,160 --> 00:08:57,110 เทคนิคหรือรูปแบบที่เป็น ใช้โดยวัตถุประสงค์ C. วัตถุประสงค์ C 150 00:08:57,110 --> 00:09:03,110 เรียกว่าวัตถุประสงค์ C ไม่ C สำหรับเหตุผลที่ดีจริงๆ 151 00:09:03,110 --> 00:09:07,560 >> ดังนั้นก่อนที่เราจะได้เป็น วัตถุประสงค์ไวยากรณ์ C, 152 00:09:07,560 --> 00:09:11,670 ลองจริงๆดูได้อย่างรวดเร็ว ว่าสิ่งที่เป็นวัตถุ 153 00:09:11,670 --> 00:09:15,480 เราได้ทำอะไรบางอย่างที่อาจจะ เช่นวัตถุก่อนซึ่ง 154 00:09:15,480 --> 00:09:19,780 เรียกว่า struct เมื่อคุณอยู่ การดำเนินการตามต้นไม้หรือรายการที่เชื่อมโยง 155 00:09:19,780 --> 00:09:25,730 หรือ [? ความพยายาม ?] ดังนั้นจึงเป็น พื้นเช่น struct, 156 00:09:25,730 --> 00:09:28,560 แต่ก็มีประสิทธิภาพมากขึ้นกว่าที่ 157 00:09:28,560 --> 00:09:33,150 วัตถุจะมีวิธีการและคุณสมบัติ 158 00:09:33,150 --> 00:09:35,310 วิธีการมีพื้นฟังก์ชั่น 159 00:09:35,310 --> 00:09:39,480 โดยทั่วไปฟังก์ชั่นที่ ที่เฉพาะเจาะจงกับวัตถุบางอย่าง 160 00:09:39,480 --> 00:09:45,440 >> และคุณสมบัติโดยทั่วไป ข้อมูลที่คุณระบุใน struct 161 00:09:45,440 --> 00:09:48,500 ดังนั้นสำหรับทุกวัตถ​​ุเดียว เรามีสถานที่ให้บริการบางส่วน 162 00:09:48,500 --> 00:09:53,160 ที่มีตัวแปรบางอย่างที่ มีความเฉพาะเจาะจงไปยังวัตถุ 163 00:09:53,160 --> 00:09:57,170 และเรามีฟังก์ชั่นบางอย่างที่ นอกจากนี้ยังมีที่เฉพาะเจาะจงไปยังวัตถุ 164 00:09:57,170 --> 00:10:01,180 และฟังก์ชั่นที่เรียกว่าวิธีการ และตัวแปรที่เรียกว่าคุณสมบัติ 165 00:10:01,180 --> 00:10:03,190 มันเป็นเพียงชื่อแฟนซี 166 00:10:03,190 --> 00:10:10,440 ในขณะที่ความเป็นจริงคุณทุกมุมมองเดียว ที่คุณเห็นในขณะที่คุณเปิดแอป iOS, 167 00:10:10,440 --> 00:10:17,720 ให้เพียงกล่าวว่า Twitter หรือ Facebook, ทุกมุมมองเดียวที่คุณเห็นคือวัตถุ 168 00:10:17,720 --> 00:10:22,110 และแม้กระทั่งการตรวจสอบทั้งหมดเป็น วัตถุที่จะเริ่มต้นด้วย 169 00:10:22,110 --> 00:10:25,340 แนวคิดที่น่าสนใจมาก 170 00:10:25,340 --> 00:10:28,480 >> และทำไมเราต้องการวัตถุ การเขียนโปรแกรมเชิง? 171 00:10:28,480 --> 00:10:33,530 ดังนั้นคุณสามารถจินตนาการได้ว่าเมื่อคุณ โปรแกรมที่ได้รับความซับซ้อนสวย 172 00:10:33,530 --> 00:10:36,400 ขอเพียงบอกว่าเมื่อคุณอยู่ กระดานหมากรุกดำเนินการ 173 00:10:36,400 --> 00:10:40,020 ตรรกะเป็นไปได้ มีความซับซ้อนจริงๆ 174 00:10:40,020 --> 00:10:43,280 คุณมี 36 ที่แตกต่างกัน ชิ้นเพื่อที่ว่าถ้าคุณ 175 00:10:43,280 --> 00:10:48,370 ต้องการที่จะเขียนตรรกะทั้งหมด 36 ชิ้นที่แตกต่างกันในหมากรุก 176 00:10:48,370 --> 00:10:52,150 ที่จะเป็นจำนวนมาก ฟังก์ชั่นที่แตกต่างกันและตัวแปร 177 00:10:52,150 --> 00:10:54,070 มันเป็นปัญหามาก 178 00:10:54,070 --> 00:10:58,980 และอาจจะคุณจะเขียน วิธีการที่แตกต่างกันหรือการทำงานที่แตกต่างกัน 179 00:10:58,980 --> 00:11:03,950 สำหรับแต่ละชิ้นเพื่อ ว่าควบคุมสิ่งที่พวกเขาทำ 180 00:11:03,950 --> 00:11:08,830 >> แต่ถ้าคุณทำเชิงวัตถุ การเขียนโปรแกรมทั้งหมดของชิ้นส่วนเหล่านี้ 181 00:11:08,830 --> 00:11:12,440 สามารถแยกออกเป็น วัตถุหนึ่งเดียว 182 00:11:12,440 --> 00:11:16,111 และวัตถุที่จะมีบางอย่างร่วมกัน คุณสมบัติเช่นเดียวกับสิ่งที่ชนิดของชิ้นส่วน 183 00:11:16,111 --> 00:11:16,610 มันคืออะไร? 184 00:11:16,610 --> 00:11:17,740 สีมันคืออะไร? 185 00:11:17,740 --> 00:11:19,480 วิธีที่จะสามารถย้าย? 186 00:11:19,480 --> 00:11:24,660 และในทางที่คุณมีมาก ง่ายตรรกะของมัน 187 00:11:24,660 --> 00:11:28,480 ดังนั้นจึงเป็นเพียงวิธีที่ดีจริงๆ เพื่อให้โปรแกรมที่มีความซับซ้อน 188 00:11:28,480 --> 00:11:33,700 และความสัมพันธ์ของลำดับชั้น ภายในโปรแกรมที่ง่ายมาก 189 00:11:33,700 --> 00:11:36,800 ขณะที่เรากำลังจะไปดู ทำไมอย่างรวดเร็วเมื่อ 190 00:11:36,800 --> 00:11:39,660 เรากำลังทำจริง programming-- เมื่อเราจริง 191 00:11:39,660 --> 00:11:42,830 ทำรหัส S เซสชั่นการเขียนโปรแกรมในภายหลัง 192 00:11:42,830 --> 00:11:48,120 >> ดีนอกเหนือไปจากนั้น เขียนโปรแกรมเชิงวัตถุ 193 00:11:48,120 --> 00:11:50,030 เป็นเพียงจำนวนมากสนุก 194 00:11:50,030 --> 00:11:51,990 คุณได้รับการออกแบบวัตถุของคุณเอง 195 00:11:51,990 --> 00:11:56,080 คุณได้รับการออกแบบสิ่งที่ไม่ มันมีลักษณะเหมือนด้วยตัวเอง 196 00:11:56,080 --> 00:11:58,250 ไม่มีคำตอบที่เหมาะสมในการที่มันเป็น 197 00:11:58,250 --> 00:12:02,940 และมันก็เป็นที่น่าสนใจทั้งหมด 198 00:12:02,940 --> 00:12:07,270 ดังนั้นในการเขียนโปรแกรมเชิงวัตถุ สองแนวคิดพื้นฐาน 199 00:12:07,270 --> 00:12:10,130 จะมีการเรียนและอินสแตนซ์ 200 00:12:10,130 --> 00:12:13,570 ชั้นเป็นพื้น แม่แบบสำหรับวัตถุ 201 00:12:13,570 --> 00:12:18,070 และเช่นนั้นเป็น หนึ่งในวัตถุที่เฉพาะเจาะจง 202 00:12:18,070 --> 00:12:21,090 >> ขอเพียงบอกว่าคุณกำลังทำคุกกี้ 203 00:12:21,090 --> 00:12:24,800 ในกรณีนี้ทุกเดียว คุกกี้คุณจริงจบลงด้วย 204 00:12:24,800 --> 00:12:27,310 เป็นไปได้ที่วัตถุ 205 00:12:27,310 --> 00:12:35,830 แต่แผ่นคุกกี้ที่คุณใช้ในการอบ คุกกี้ทั้งหมดจะเป็นชั้น 206 00:12:35,830 --> 00:12:37,880 ชั้นเป็นพื้นแม่แบบ 207 00:12:37,880 --> 00:12:46,170 และอินสแตนซ์จะเป็นหนึ่งที่เฉพาะเจาะจง วัตถุที่สร้างขึ้นมาจากชั้นเรียนที่ 208 00:12:46,170 --> 00:12:49,970 >> และตัวอย่างจะถูกสร้างขึ้น ขึ้นอยู่กับการประกาศคลาส, 209 00:12:49,970 --> 00:12:56,760 ในขณะที่เราจะเห็นในสไลด์ในภายหลัง 210 00:12:56,760 --> 00:13:00,010 ดังนั้นขอให้ทำจริงจริงๆ ตัวอย่างรวดเร็ว [ไม่ได้ยิน] 211 00:13:00,010 --> 00:13:04,280 สมมติว่าเรากำลังประกาศ วัตถุสำหรับแมว 212 00:13:04,280 --> 00:13:07,930 วัตถุควร have-- ชั้นแมวควร 213 00:13:07,930 --> 00:13:11,260 มีคุณสมบัติบางอย่างและวิธีการ 214 00:13:11,260 --> 00:13:17,300 ชนิดของคุณสมบัติที่ควร ชั้น have-- แมวควรมี? 215 00:13:17,300 --> 00:13:20,580 >> ยกตัวอย่างเช่นสี อายุและสายพันธุ์เหล่านั้น 216 00:13:20,580 --> 00:13:24,440 จะเป็นตัวแปรที่ มีความเฉพาะเจาะจงกับแมวแต่ละ 217 00:13:24,440 --> 00:13:27,790 และผู้ที่มีบางสิ่งบางอย่าง ที่เราใช้ในการอธิบายแมว 218 00:13:27,790 --> 00:13:31,880 ชนิดของวิธีการ หรือสิ่งที่แมวจะทำอย่างไร 219 00:13:31,880 --> 00:13:37,160 บางตัวอย่างรวดเร็วจะไล่ล่า เมาส์, กินปลาหรือเพียงแค่ meow 220 00:13:37,160 --> 00:13:40,900 นี้เป็นวิธีที่รวดเร็วจริงๆ ตัวอย่างของการเรียนแมว 221 00:13:40,900 --> 00:13:46,920 และเฉพาะจริงๆ วัตถุแมวจะเป็นแมว 222 00:13:46,920 --> 00:13:50,930 ที่เราระบุ สีอายุและสายพันธุ์ 223 00:13:50,930 --> 00:13:53,790 >> ในกรณีที่วัตถุของเราคือ ไม่มีชั้นอีกต่อไป 224 00:13:53,790 --> 00:14:00,010 เราคัดลอกแม่แบบจากชั้นเรียนและ เราระบุแต่ละข้อมูลที่เฉพาะเจาะจง 225 00:14:00,010 --> 00:14:04,510 กับวัตถุที่เฉพาะเจาะจง ที่จะทำให้มันเป็นอิสระ 226 00:14:04,510 --> 00:14:09,350 และเมื่อคุณโทร วิธีการภายในวัตถุ, 227 00:14:09,350 --> 00:14:16,640 คุณเพียงโทร Meow บนวัตถุ ซึ่งเป็นแมวที่คุณเพิ่งสร้าง 228 00:14:16,640 --> 00:14:19,020 >> คุณอาจจะพิมพ์ออกมา บางอย่างเช่น "Hello World! 229 00:14:19,020 --> 00:14:20,000 Meow. " 230 00:14:20,000 --> 00:14:22,110 สวยน่ารัก 231 00:14:22,110 --> 00:14:24,500 สิทธิทั้งหมดให้เพียง ได้รับในรายละเอียดบางอย่าง 232 00:14:24,500 --> 00:14:30,650 และดูว่าสิ่งที่ไม่ว่า แปลเป็​​นกำลังการเขียนโปรแกรม iOS 233 00:14:30,650 --> 00:14:36,500 ดังนั้นในการเขียนโปรแกรม iOS ทุกเดียว ชั้นจะดำเนินการในสองไฟล์ 234 00:14:36,500 --> 00:14:41,420 หนึ่งไฟล์อยู่ที่นี่ซึ่ง ที่เรียกว่าอินเตอร์เฟซ 235 00:14:41,420 --> 00:14:45,300 ไฟล์ก็คือที่นี่ซึ่ง ที่เรียกว่าการดำเนินการ 236 00:14:45,300 --> 00:14:48,890 >> โดยปกติอินเตอร์เฟซ จะมี extension.h 237 00:14:48,890 --> 00:14:51,740 ที่เราได้เห็นในห้องสมุด C 238 00:14:51,740 --> 00:14:56,340 และการดำเนินงานเป็นไฟล์ จะมี extension.n 239 00:14:56,340 --> 00:14:57,260 มันเป็นชนิดของแปลก 240 00:14:57,260 --> 00:15:01,270 แต่หมายถึงการ .n จริง .c ไม่มี ความแตกต่างพื้นฐานระหว่างผู้ 241 00:15:01,270 --> 00:15:02,100 สอง 242 00:15:02,100 --> 00:15:06,650 ดังนั้นในกรณีนี้เราจะเห็นว่าเรา อินเตอร์เฟซที่ประกาศแมว: วัตถุ 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 ที่เรียกว่ามรดก 245 00:15:13,760 --> 00:15:19,170 เรากำลังพื้นสืบทอด ชั้นแมวจากชั้นวัตถุ 246 00:15:19,170 --> 00:15:24,790 ดังนั้นทุกสถานที่ให้บริการและวิธีการที่เป็น ที่กำหนดไว้ก่อนหน้านี้ในชั้นวัตถุ 247 00:15:24,790 --> 00:15:28,560 จะถูกกำหนดโดยอัตโนมัติ ในชั้นเรียนของแมวได้เป็นอย่างดี 248 00:15:28,560 --> 00:15:35,900 >> นอกจากนั้นเรากำหนดสี พันธุ์และอายุสามตัวแปร 249 00:15:35,900 --> 00:15:39,360 ที่จริงดูเหมือนว่า สิ่งที่คุณได้ทำมาก่อน 250 00:15:39,360 --> 00:15:41,770 ดูเหมือนว่า struct 251 00:15:41,770 --> 00:15:44,950 นั่นคือโดยทั่วไปไวยากรณ์ สำหรับการประกาศ struct, 252 00:15:44,950 --> 00:15:47,710 และนั่นคือที่ถูกต้องทั้งหมด 253 00:15:47,710 --> 00:15:51,825 และตั้งแต่ที่ผมกล่าวถึงมาก่อน ความแตกต่าง struct 254 00:15:51,825 --> 00:15:53,960 และวัตถุอย่างใดอย่างหนึ่ง ความแตกต่างพื้นฐาน 255 00:15:53,960 --> 00:15:59,080 คือการที่วัตถุจะมีวิธีการ ในขณะที่โครงสร้างมีเพียงตัวแปร 256 00:15:59,080 --> 00:16:03,450 ดังนั้นนอกเหนือไปจากคุณสมบัติหรือ ตัวแปรที่เราได้สร้างขึ้นสำหรับวัตถุ 257 00:16:03,450 --> 00:16:05,700 เราระบุวิธีการบางอย่าง 258 00:16:05,700 --> 00:16:09,720 >> ขอเพียงบอกว่าที่นี่เรามี สองวิธีหนึ่งคือแมว, 259 00:16:09,720 --> 00:16:12,460 อีกคนหนึ่งเป็นเมาส์ไล่ล่า 260 00:16:12,460 --> 00:16:18,600 เราอาจต้องการที่จะผ่าน พารามิเตอร์ตามวิธีการเดิมของเรา 261 00:16:18,600 --> 00:16:20,440 รูปแบบการประกาศ 262 00:16:20,440 --> 00:16:22,160 คุณอาจต้องการที่จะผ่านเมาส์ 263 00:16:22,160 --> 00:16:25,180 และคุณอาจจะต้องการ เพื่อกลับสำแดงบูล 264 00:16:25,180 --> 00:16:30,010 ถ้าแมวของคุณมีประสบความสำเร็จ จับเมาส์หรือไม่ 265 00:16:30,010 --> 00:16:33,170 >> นี่คืออินเตอร์เฟซ แต่ที่เราสามารถทำได้ เห็นว่าอินเตอร์เฟซจริง 266 00:16:33,170 --> 00:16:35,150 ไม่ได้ทำอะไร 267 00:16:35,150 --> 00:16:40,800 มันก็บอกว่าสิ่งที่โปรแกรม exists-- สิ่งที่มีอยู่ในชั้นเรียนของแมว 268 00:16:40,800 --> 00:16:43,640 ดังนั้นเพื่อให้ โปรแกรมที่จะทำบางสิ่งบางอย่าง 269 00:16:43,640 --> 00:16:46,680 เราจำเป็นต้องมีไฟล์การดำเนินงาน 270 00:16:46,680 --> 00:16:51,940 ดังนั้นนี่คือสิ่งแรกที่เราทำคือ เห็นได้ชัดว่าเรานำเข้าอินเตอร์เฟซ 271 00:16:51,940 --> 00:16:56,470 หลังจากที่เรานำเข้าอินเตอร์เฟซ, เรากำหนดวิธีการ 272 00:16:56,470 --> 00:17:00,150 >> ขอเพียงบอกว่าที่นี่ Meow ก็จะพิมพ์ออกมา 273 00:17:00,150 --> 00:17:01,740 "Hello World!" ไปยังคอนโซล 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 และหลังจากการดำเนินการ ไฟล์ที่เรากำลังทำสวยมาก 276 00:17:08,460 --> 00:17:14,530 นี้เป็นพื้นชั้น ประกาศสำหรับชั้นหนึ่ง 277 00:17:14,530 --> 00:17:19,970 ดังนั้นตอนนี้คำถามที่จะกลายเป็น วิธีการทำคุณประกาศตัวแปร? 278 00:17:19,970 --> 00:17:26,880 วิธีที่คุณใช้คลาสที่จะสร้าง วัตถุที่อยู่ในวัตถุประสงค์ C ที่เขียนไว้ที่นี่ 279 00:17:26,880 --> 00:17:30,730 >> คุณเป็นครั้งแรกระบุว่า นี้เป็นตัวชี้แมว 280 00:17:30,730 --> 00:17:38,700 เนื่องจากวัตถ​​ุในวัตถุประสงค์ C ทุก จะดำเนินการในที่สุดก็เป็นตัวชี้ 281 00:17:38,700 --> 00:17:46,210 และคุณเรียกชั้นเรียกพวกเขา เป็น alloc ซึ่งเป็นพื้น malloc, 282 00:17:46,210 --> 00:17:51,220 บอกระบบปฏิบัติการที่คุณ ต้องการพื้นที่หน่วยความจำบางสำหรับวัตถุนี้ 283 00:17:51,220 --> 00:17:55,780 หลังจากนั้นคุณมีวัตถุ แล้วและคุณเพียงแค่เริ่มต้นมัน 284 00:17:55,780 --> 00:17:56,780 นี่คือแผนการเพียง 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 ฉันรู้ว่ามันเป็นเล็กน้อยแปลก แต่ นี้เป็นจริงว่าแอปเปิ้ลไม่สิ่ง 287 00:18:04,410 --> 00:18:07,130 >> การกำหนดคุณสมบัติเป็น จริงตรงไปตรงสวย 288 00:18:07,130 --> 00:18:09,250 มันคล้ายกับ สิ่งที่คุณทำเมื่อ 289 00:18:09,250 --> 00:18:13,780 คุณกำลังกำหนดเฉพาะบางส่วน ข้อมูลภายในของ struct 290 00:18:13,780 --> 00:18:16,830 คุณเพียงแค่ต้องตัวแปร ชื่อชื่อสถานที่ให้บริการ 291 00:18:16,830 --> 00:18:20,140 และกำหนดค่าเฉพาะกับมัน 292 00:18:20,140 --> 00:18:24,120 และเรียกวิธีการคล้ายกันมาก 293 00:18:24,120 --> 00:18:29,080 เรียกวิธีการคือ โดยทั่วไปสิ่งที่ฉันพูดคุยเกี่ยวกับ 294 00:18:29,080 --> 00:18:32,390 เรียกวิธีการใด ๆ ในวัตถุประสงค์ C. 295 00:18:32,390 --> 00:18:36,660 >> คุณผ่านวัตถุใน กรณีนี้มันเป็นไปได้ myCat, 296 00:18:36,660 --> 00:18:42,490 และคุณผ่านชื่อวิธี 297 00:18:42,490 --> 00:18:47,130 ราวกับว่าคุณกำลังพูดคุยกับวัตถุ myCat ที่คุณควร meow 298 00:18:47,130 --> 00:18:48,570 มันเป็นเรื่องที่น่าสนใจสวย 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 หลังจากนั้นมีหนึ่ง รูปแบบการออกแบบที่สำคัญมากขึ้น 301 00:18:55,680 --> 00:18:59,940 ที่เราต้องการที่จะพูดคุยเกี่ยวกับ ก่อนที่จะเดินทางไปยังรหัส S ที่เกิดขึ้นจริง 302 00:18:59,940 --> 00:19:03,300 รูปแบบการออกแบบที่เรียกว่า เหตุการณ์การเขียนโปรแกรมขับเคลื่อน 303 00:19:03,300 --> 00:19:09,660 และนี่ก็อาจเป็นหนึ่งในที่สุด ความคิดพื้นฐานในการเขียนโปรแกรม iOS 304 00:19:09,660 --> 00:19:14,410 >> ดังนั้นคุณอาจไม่ทราบว่าสิ่งที่ คือการเขียนโปรแกรมขับเคลื่อนเหตุการณ์ 305 00:19:14,410 --> 00:19:16,990 แต่มันไม่จริงที่น่ากลัว 306 00:19:16,990 --> 00:19:20,400 ดีในความเป็นจริงคุณมี ทำมาแล้วว่าก่อนที่ 307 00:19:20,400 --> 00:19:24,894 นี้เป็นหนึ่งในสายที่คุณอาจจะ เขียนแล้วในช่วง [ไม่ได้ยิน] 308 00:19:24,894 --> 00:19:26,810 ของ CS50, google.maps.event.addListener (เครื่องหมาย 309 00:19:26,810 --> 00:19:27,810 "คลิกที่" ฟังก์ชั่น () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 โดยการเรียกสายคุณอยู่นี้ เป็นหลักบอกคอมพิวเตอร์ 312 00:19:37,620 --> 00:19:42,650 ว่าเมื่อใดก็ตามเหตุการณ์ที่เรียกว่า "คลิก" ที่เกิดขึ้นในเครื่องหมาย, 313 00:19:42,650 --> 00:19:43,630 ใช้ฟังก์ชั่นที่ 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> นี่คือความแตกต่างจาก สิ่งที่คุณทำใน mario.c 316 00:19:50,950 --> 00:19:56,670 ใน mario.c คุณเพียงแค่เรียกใช้โปรแกรม ครั้งเดียวก็จะช่วยให้คุณเอาท์พุท, 317 00:19:56,670 --> 00:19:58,590 และคุณเสร็จแล้ว 318 00:19:58,590 --> 00:20:02,590 เหล่านี้เป็นประเภทเช่น หนึ่งในโปรแกรมยิง 319 00:20:02,590 --> 00:20:05,830 เหตุการณ์ที่ขับเคลื่อนด้วยโปรแกรม มีความแตกต่างกันมาก 320 00:20:05,830 --> 00:20:10,230 ลองจินตนาการถ้า Facebook เป็นหนึ่ง โปรแกรมยิงมันไม่ดีจริงๆ 321 00:20:10,230 --> 00:20:13,750 คุณเพียงแค่ไปที่ Facebook ครั้งเดียวและมันทำ 322 00:20:13,750 --> 00:20:16,700 มันจะช่วยให้คุณส่งออกบางส่วน และคุณไม่เคยได้รับมันกลับ 323 00:20:16,700 --> 00:20:19,380 คุณไม่เคยได้อะไรมาก 324 00:20:19,380 --> 00:20:23,880 >> ดังนั้นที่นี่โดยเฉพาะอย่างยิ่ง รูปแบบที่เราใช้คือ 325 00:20:23,880 --> 00:20:26,940 เหตุการณ์ที่ขับเคลื่อนด้วยเพื่อที่ว่า ทุกฟังก์ชั่นจะ 326 00:20:26,940 --> 00:20:31,480 ถูกจับตามสิ่งที่ เหตุการณ์ที่เกิดขึ้น 327 00:20:31,480 --> 00:20:34,670 ยกตัวอย่างเช่นถ้าเรามี ปุ่มและเราระบุ 328 00:20:34,670 --> 00:20:39,870 ว่าเมื่อใดก็ตามที่มีปุ่มคลิก เรียกใช้ฟังก์ชันที่เรียกว่า "Hello World!" 329 00:20:39,870 --> 00:20:47,810 ในวิธีการที่เราสามารถทำได้จริงๆ ฟังก์ชั่นการจัดการลอจิก 330 00:20:47,810 --> 00:20:50,560 การไหลในทางที่มีความยืดหยุ่นสูง 331 00:20:50,560 --> 00:20:55,840 ผู้ใช้สามารถทำหรือเรียกใช้ฟังก์ชัน ที่ได้ถูกเรียกว่า 332 00:20:55,840 --> 00:20:59,900 ก็ขึ้นอยู่อย่างสมบูรณ์ในสิ่งที่ผู้ใช้ทำ 333 00:20:59,900 --> 00:21:04,080 >> ดังนั้นเราจะเห็นว่านี่คือ จริงดีกว่า mario.c 334 00:21:04,080 --> 00:21:07,190 และข่าวดีก็คือว่ามันเป็น จริงไม่ได้เป็นแนวคิดใหม่ 335 00:21:07,190 --> 00:21:12,140 พวกคุณได้ทำมาแล้ว ว่าในปัญหาชุดที่ผ่านมา 336 00:21:12,140 --> 00:21:16,640 ดังนั้นในวัตถุประสงค์ C มี สามแผนภาพที่แตกต่างกัน 337 00:21:16,640 --> 00:21:19,030 สำหรับการเขียนโปรแกรมขับเคลื่อนเหตุการณ์ 338 00:21:19,030 --> 00:21:21,970 แผนภาพแรกคือ ที่เรียกว่าการดำเนินการเป้าหมาย 339 00:21:21,970 --> 00:21:26,990 ที่คุณผูกปุ่ม กดที่มีฟังก์ชั่นบางอย่าง 340 00:21:26,990 --> 00:21:31,590 ขอเพียงบอกว่าเมื่อใดก็ตามที่คุณคลิก ปุ่มบางอย่างที่คุณเรียกฟังก์ชั่นบางอย่าง 341 00:21:31,590 --> 00:21:33,620 นี่คือการกระทำที่เป้าหมายที่ง่ายมาก 342 00:21:33,620 --> 00:21:35,580 >> คนที่สองเป็น จริงที่ยากที่สุดอย่างใดอย่างหนึ่ง 343 00:21:35,580 --> 00:21:38,450 ก็เรียกว่าคณะผู้แทนโปรโตคอล 344 00:21:38,450 --> 00:21:41,800 เรากำลังจะไปอธิบาย ว่าในรายละเอียดมากในภายหลัง 345 00:21:41,800 --> 00:21:44,420 และวิธีที่สามคือการแจ้งเตือน 346 00:21:44,420 --> 00:21:46,770 นี้เป็นจริงไม่ได้ สิ่งที่สำคัญมากเท่า 347 00:21:46,770 --> 00:21:50,920 ในขณะที่เรากำลังกังวลเพราะโอกาส ที่คุณกำลังจะใช้การแจ้งเตือน 348 00:21:50,920 --> 00:21:53,310 ในโครงการสุดท้ายของคุณอยู่ในระดับต่ำสวย 349 00:21:53,310 --> 00:21:56,440 ดังนั้นเราจึงกำลังจะข้ามส่วนที่ 350 00:21:56,440 --> 00:21:59,460 >> และเรากำลังจะไปดำน้ำ เป็นผู้แทนโปรโตคอล 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 ดังนั้นสิ่งที่ว่าเป็นโปรโตคอล? 353 00:22:04,470 --> 00:22:06,450 หรือว่าเป็นสิ่งที่คณะผู้แทน? 354 00:22:06,450 --> 00:22:09,670 พูดคุยเกี่ยวกับโปรโตคอลจะเริ่มต้นด้วย 355 00:22:09,670 --> 00:22:13,360 โปรโตคอลจะไม่มีอะไร แต่เหตุการณ์ที่เกิดขึ้น 356 00:22:13,360 --> 00:22:19,230 แต่เหตุการณ์เหล่านี้จะได้รับการ คุณโดยแอปเปิ้ลจะเริ่มต้นด้วย 357 00:22:19,230 --> 00:22:22,640 ยกตัวอย่างเช่นฉันไม่ได้ สมบูรณ์แน่ใจว่าหลายท่าน 358 00:22:22,640 --> 00:22:27,930 คนเดิมใช้แอปเปิ้ล จดหมายการตรวจสอบหรือการติดต่อ 359 00:22:27,930 --> 00:22:32,180 แต่เวลาที่คุณเลื่อนทุก ตารางและกดเซลล์ที่เฉพาะเจาะจง 360 00:22:32,180 --> 00:22:36,130 บนโต๊ะที่เป็นเหตุการณ์ 361 00:22:36,130 --> 00:22:38,330 >> และถ้าคุณต้องการที่จะทำ เหตุการณ์ที่ด้วยตัวเอง 362 00:22:38,330 --> 00:22:40,410 ก็จริงเล็กน้อยยาก 363 00:22:40,410 --> 00:22:44,880 ดังนั้นแอปเปิ้ลได้ให้ว่าแม้กับคุณ เพื่อให้คุณสามารถเพียงแค่ใช้โดยตรง 364 00:22:44,880 --> 00:22:49,610 เหตุการณ์ที่จะทำบางสิ่งบางอย่างด้วยตัวคุณเอง 365 00:22:49,610 --> 00:22:52,980 โปรโตคอลที่เป็นจริง จริงๆใช้กันอย่างแพร่หลาย 366 00:22:52,980 --> 00:22:58,320 ในวัตถุประสงค์ C. ดีใน ความเป็นจริงทุก app เดียว 367 00:22:58,320 --> 00:23:00,870 มีสิ่งที่จับผู้แทนการตรวจสอบ 368 00:23:00,870 --> 00:23:06,330 ภายในที่ละเอียดอ่อนคือทั้งหมดของ โปรโตคอลสำหรับการโหลดแอพพลิเค 369 00:23:06,330 --> 00:23:12,470 >> ขอเพียงบอกว่ามี เหตุการณ์สำหรับ app ได้โหลด 370 00:23:12,470 --> 00:23:18,200 ดังนั้นสิ่งที่ควรจะเกิดขึ้นหลังจากที่คุณได้ สร้างแอพพลิเค, หลังจากที่คุณเปิด app ที่ 371 00:23:18,200 --> 00:23:22,630 หลังจากที่คุณปิด app ที่หรือหลัง คุณใส่ iPhone เพื่อการนอนหลับ 372 00:23:22,630 --> 00:23:27,480 เหล่านี้เป็นเหตุการณ์ที่เกิดขึ้นทั้งหมดที่มี รับแล้วให้กับคุณ 373 00:23:27,480 --> 00:23:34,730 และสร้างสรรค์ภายในอนุภาคเหล่านี้ จะมีการดำเนินการไม่มี 374 00:23:34,730 --> 00:23:39,750 แอปเปิ้ลเพียงแค่บอกคุณว่าฟังก์ชั่นนี้ จะเกิดขึ้นเมื่อมีเหตุการณ์บางอย่างเกิดขึ้น 375 00:23:39,750 --> 00:23:44,380 แต่สิ่งที่คุณทำกับที่ ฟังก์ชั่นสมบูรณ์ขึ้นอยู่กับคุณ 376 00:23:44,380 --> 00:23:49,290 >> คณะผู้แทนเป็นพื้น บอกชั้น 377 00:23:49,290 --> 00:23:53,060 ที่คุณควรจัดการโปรโตคอลเหล่านี้ 378 00:23:53,060 --> 00:23:55,340 มันนิด ๆ หน่อย ๆ สับสน แต่มันจะเป็น 379 00:23:55,340 --> 00:23:59,380 ชัดเจนมากขึ้นเมื่อเราทำ รหัสในการดำเนินการ 380 00:23:59,380 --> 00:24:04,760 คณะผู้แทนโปรโตคอลเป็นจริง กลไกที่แข็งแกร่งอย่างมากในความรู้สึก 381 00:24:04,760 --> 00:24:08,160 ว่าถ้าเราทำคณะผู้แทน ในระดับที่เฉพาะเจาะจง 382 00:24:08,160 --> 00:24:12,400 เราสามารถจัดการเป็นหลัก ทุกชนิดของเหตุการณ์ที่เกิดขึ้น 383 00:24:12,400 --> 00:24:17,040 โดยใช้ชั้นใดที่เรามี เครื่องมือที่สะดวกมาก 384 00:24:17,040 --> 00:24:21,530 >> ดังนั้นหนึ่งตัวอย่างรวดเร็วสำหรับ คณะผู้แทนโปรโตคอล 385 00:24:21,530 --> 00:24:24,120 จะเป็นสิ่งที่ผมเพิ่งพูดคุยเกี่ยวกับ 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 โปรโตคอลนี้โดยเฉพาะที่เรียกว่า tableview [ไม่ได้ยิน] เลือกที่บทบาท 388 00:24:30,890 --> 00:24:35,480 ที่ [? ดัชนี?] [? อดีต ?] ดังนั้นนี้ เหตุการณ์ที่จะถูกจับเมื่อคุณ 389 00:24:35,480 --> 00:24:39,710 จริงแตะที่เฉพาะเจาะจง เซลล์ใน tableview ของคุณ 390 00:24:39,710 --> 00:24:43,570 ให้เพียงกล่าวว่าในจดหมายของคุณ หรือในการตรวจสอบรายชื่อของคุณ 391 00:24:43,570 --> 00:24:48,180 >> ภายในมีฟังก์ชั่น แต่เดิมทำอะไร 392 00:24:48,180 --> 00:24:51,950 ฟังก์ชั่นไม่ได้ ทำอะไรไปโดยปริยาย 393 00:24:51,950 --> 00:24:55,540 แต่คุณสามารถระบุ สิ่งที่ฟังก์ชั่นไม่ 394 00:24:55,540 --> 00:24:59,610 ได้รับสิ่งที่คุณต้องการออกจาก app ของคุณ 395 00:24:59,610 --> 00:25:01,610 เครื่องมือที่สะดวกมาก 396 00:25:01,610 --> 00:25:06,840 และด้วยทุกสิ่งที่ ถูกกล่าวว่าฉันเป็นพื้น 397 00:25:06,840 --> 00:25:11,430 ครอบคลุมบางส่วนไวยากรณ์พื้นฐานมากและ แนวคิดพื้นฐานสำหรับวัตถุประสงค์ C 398 00:25:11,430 --> 00:25:15,860 การเขียนโปรแกรมและเราสามารถทำรหัสบาง 399 00:25:15,860 --> 00:25:17,980 มากที่น่าตื่นเต้นมาก 400 00:25:17,980 --> 00:25:21,070 ดังนั้นรหัสคือจริง นิด ๆ หน่อย ๆ อย่างท่วมท้น 401 00:25:21,070 --> 00:25:23,330 เมื่อคุณเปิดมันเป็นครั้งแรก 402 00:25:23,330 --> 00:25:26,640 >> หนึ่งทราบอย่างรวดเร็วดังนั้นหากคุณ ต้องการที่จะทำการพัฒนา iOS ของคุณ, 403 00:25:26,640 --> 00:25:29,630 ผมขอแนะนำให้คุณมี Mac 404 00:25:29,630 --> 00:25:33,930 เพราะการทำเช่นการพัฒนาบน iOS Windows เป็นจริงๆยาก 405 00:25:33,930 --> 00:25:37,560 มันเป็นไปได้ แต่มันเป็นเรื่องยากจริงๆ 406 00:25:37,560 --> 00:25:40,610 และแน่นอนคุณทำ ไม่ต้องการที่จะใช้แก้ไขกรัม 407 00:25:40,610 --> 00:25:47,950 ดังนั้นในรหัส S เรามี หลายพื้นที่ที่แตกต่างกัน 408 00:25:47,950 --> 00:25:53,050 เมื่อคุณเปิดรหัส S คุณจะเห็นพื้นที่นำทาง 409 00:25:53,050 --> 00:25:57,470 ซึ่งโดยทั่วไปจะแสดงทั้งหมด ไฟล์ที่อยู่ในโครงการปัจจุบันของคุณ 410 00:25:57,470 --> 00:26:03,590 >> คุณมีพื้นที่แถบเครื่องมือซึ่ง เป็นพื้นการจัดการมุมมอง 411 00:26:03,590 --> 00:26:08,570 หรือบางอย่างเล็ก ๆ น้อย ๆ อย่างรวดเร็ว เครื่องมือเกี่ยวกับรหัสของตัวเอง 412 00:26:08,570 --> 00:26:11,140 และนี่คือการแก้ไขที่เกิดขึ้นจริงในพื้นที่ 413 00:26:11,140 --> 00:26:15,900 บริเวณนี้เป็นกรัมแก้ไขที่คล้ายกันมาก แต่ดีกว่ากรัมแก้ไข 414 00:26:15,900 --> 00:26:21,150 และในพื้นที่ด้านขวานี้ เรียกว่าพื้นที่ยูทิลิตี้ 415 00:26:21,150 --> 00:26:27,170 พื้นที่กลายเป็นที่มีประโยชน์จริงๆเมื่อ คุณกำลังสร้างอินเตอร์เฟซหรือระบุ 416 00:26:27,170 --> 00:26:30,070 การตั้งค่าบางอย่างรวดเร็วสำหรับ app ของคุณ 417 00:26:30,070 --> 00:26:34,570 >> และพื้นที่สุดท้ายคือการแก้จุดบกพร่อง 418 00:26:34,570 --> 00:26:37,970 บริเวณนี้มีคอนโซล 419 00:26:37,970 --> 00:26:43,170 ดังนั้นเมื่อใดก็ตามที่คุณพูด ​​printf, หรือ NSLog ในกรณีของเรา 420 00:26:43,170 --> 00:26:47,330 ผลลัพธ์ทั้งหมดของคุณ จะได้รับการตีพิมพ์ที่นี่ 421 00:26:47,330 --> 00:26:48,260 ทั้งหมดใช่มั้ย? 422 00:26:48,260 --> 00:26:52,090 ผมคิดว่าเราสามารถทำอย่างรวดเร็วจริงๆ ตัวอย่างเช่นในการเขียนโปรแกรม iOS 423 00:26:52,090 --> 00:26:54,220 และให้จริงเปิดรหัส S 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 ดังนั้นเวลาที่คุณเปิดรหัสขึ้นทุกๆมัน จะแสดงขึ้นสิ่งที่ต้องการที่ 426 00:27:01,346 --> 00:27:03,220 ก็จะขอให้คุณ สิ่งที่คุณต้องการจะทำอย่างไร? 427 00:27:03,220 --> 00:27:06,830 คุณต้องการที่จะเริ่มต้นบางสิ่งบางอย่าง สุ่มสนามเด็กเล่นโดยทั่วไปคุณ 428 00:27:06,830 --> 00:27:11,250 ก็สามารถทดสอบโค้ดโดยไม่ต้อง จริง committing เพื่อตรวจสอบใด ๆ 429 00:27:11,250 --> 00:27:13,020 >> คุณต้องการที่จะสร้างโครงการใหม่ได้หรือไม่ 430 00:27:13,020 --> 00:27:16,660 หรือคุณต้องการที่จะดำเนินการ ทำงานในโครงการที่มีอยู่? 431 00:27:16,660 --> 00:27:20,270 ในกรณีที่เรากำลังจะ เพื่อสร้างโครงการใหม่ 432 00:27:20,270 --> 00:27:22,980 ดังนั้นมันเป็นเรื่องดีจริงๆ s รหัสจริงที่มีอยู่แล้ว 433 00:27:22,980 --> 00:27:26,820 ให้คุณแม่บาง สำหรับการสร้างวัตถุ 434 00:27:26,820 --> 00:27:32,680 ถ้าคุณต้องการที่จะทำเกม, s รหัส จริงมีแม่แบบเกมสำหรับคุณ 435 00:27:32,680 --> 00:27:36,890 มีการใช้งานตามหน้า แท็บการประยุกต์ใช้ 436 00:27:36,890 --> 00:27:39,280 ในกรณีนี้เรากำลังจะ ที่จะทำสิ่งที่ง่ายมาก 437 00:27:39,280 --> 00:27:43,230 และเรากำลังจะใช้ การประยุกต์ใช้มุมมองเดียว 438 00:27:43,230 --> 00:27:48,270 >> หลังจากนั้นเพียงแค่สิ่งที่คุณต้องการที่จะเรียก ผลิตภัณฑ์ของคุณและสิ่งที่ชื่อของคุณ 439 00:27:48,270 --> 00:27:52,760 สิ่งที่เป็นตัวบ่งชี้ของคุณและ สิ่งที่ภาษาที่คุณใช้ 440 00:27:52,760 --> 00:27:57,060 ที่นี่เราไม่ต้องการที่จะ ตรวจสอบข้อมูลโดยใช้หลัก 441 00:27:57,060 --> 00:28:00,170 แกนข้อมูลเป็นพื้น databasing iOS 442 00:28:00,170 --> 00:28:05,360 ถ้าคุณทำหลักข้อมูล, s รหัสจะไปกำหนด 443 00:28:05,360 --> 00:28:07,710 ชั้นเรียนที่มีความซับซ้อนมากขึ้นสำหรับคุณ 444 00:28:07,710 --> 00:28:12,740 ดังนั้นเพื่อให้ทุกอย่างง่ายเราไม่ แค่ไปที่จะทำโดยแกนข้อมูล 445 00:28:12,740 --> 00:28:15,290 ตอนนี้ 446 00:28:15,290 --> 00:28:18,030 >> ปัญหาที่เรากำลังจะเป็น โดยใช้เป็น that-- ปัญหา 447 00:28:18,030 --> 00:28:23,770 เรากำลังจะได้รับการสร้างคือการที่เรา โดยทั่วไปต้องการที่จะนำเข้าจากมาริโอซี 448 00:28:23,770 --> 00:28:25,437 เพื่อแอป iOS 449 00:28:25,437 --> 00:28:26,645 ดังนั้นขอเรียกว่ามาริโอ iOS 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 แน่นอนคุณระบุสิ่งที่คุณ ต้องการที่จะนำในโครงการของคุณ 452 00:28:34,880 --> 00:28:37,870 และมีที่เราจะไป 453 00:28:37,870 --> 00:28:41,390 >> ดังนั้นนี่คือนิด ๆ หน่อย ๆ ครอบงำ แต่นี้เป็นจริง 454 00:28:41,390 --> 00:28:43,540 สิ่งที่เราเห็นบนสไลด์ 455 00:28:43,540 --> 00:28:49,710 และพื้นที่แรกที่เราเห็นในขณะนี้ เป็นพื้นการกำหนดค่าโครงการ 456 00:28:49,710 --> 00:28:53,390 ดังนั้นทุกสิ่งที่คุณต้องการจะทำ โครงการสิ่งที่ชนิดของอุปกรณ์ 457 00:28:53,390 --> 00:28:58,810 ขอเพียงแค่พูดในสิ่งที่ชนิดของอุปกรณ์ คุณต้องการ app ของคุณจะปรากฏบน? 458 00:28:58,810 --> 00:29:01,280 มันเป็น iPhone, iPad หรือสากล? 459 00:29:01,280 --> 00:29:04,660 ดังนั้นการวางอุปกรณ์ทุกสิ่งนี้ 460 00:29:04,660 --> 00:29:08,490 ไม่สำคัญมาก แต่อาจจะเป็น แต่นี้ 461 00:29:08,490 --> 00:29:11,050 เป็นสถานที่ที่คุณสามารถตั้งค่า โครงการของคุณถ้าคุณจริง 462 00:29:11,050 --> 00:29:15,180 ต้องการปรับใช้ในการจัดเก็บแอปเปิ้ล 463 00:29:15,180 --> 00:29:20,420 >> สิทธิทั้งหมดให้ดูที่ บางสิ่งบางอย่างที่อยู่ภายในรหัสของเรา 464 00:29:20,420 --> 00:29:22,360 Let 's go ผ่านนำทางไฟล์ 465 00:29:22,360 --> 00:29:30,140 และเหล่านี้เป็นไฟล์ทั้งหมดที่มีอยู่แล้ว มาพร้อมกับแม่แบบที่ดีมาก 466 00:29:30,140 --> 00:29:35,980 ดังนั้นเมื่อเราคลิกหนึ่งของพวกเขา นี่คือสิ่งที่ดูเหมือนว่า 467 00:29:35,980 --> 00:29:38,530 คล้ายกับกรัมแก้ไข 468 00:29:38,530 --> 00:29:41,340 แต่คุณจะเห็นว่า เน้นไวยากรณ์น่าจะเป็น 469 00:29:41,340 --> 00:29:42,780 นิด ๆ หน่อย ๆ ดีกว่า 470 00:29:42,780 --> 00:29:45,610 และมันก็เป็นจริงมากขึ้น ที่มีประสิทธิภาพกว่าการแก้ไขกรัม 471 00:29:45,610 --> 00:29:49,970 และคุณสามารถที่สมบูรณ์แบบอัตโนมัติ สิ่งต่างๆมากมายสำหรับคุณ 472 00:29:49,970 --> 00:29:52,370 ในขณะที่เราจะเห็นได้อย่างรวดเร็ว 473 00:29:52,370 --> 00:29:54,100 >> ขอเปิดพื้นที่การแก้จุดบกพร่องได้เป็นอย่างดี 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 สิทธิทั้งหมดที่เราสามารถมองเห็น คอนโซลอยู่ที่นี่ 476 00:30:07,000 --> 00:30:13,840 นี่คือสิ่งที่คุณกำลังจะไปดูว่า คุณอยู่ใน printf หรือ nsloging บางสิ่งบางอย่าง 477 00:30:13,840 --> 00:30:17,155 โดยไม่ต้องกังวลใจต่อให้จริง รวบรวมการตรวจสอบและดูสิ่งที่เกิดขึ้น 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 หนึ่งคุณลักษณะที่จำเป็นสำหรับ รหัสวินาที, เป็นรหัสของที่ 480 00:30:23,410 --> 00:30:25,850 มาพร้อมกับจำลอง iPhone 481 00:30:25,850 --> 00:30:29,820 ดังนั้นคุณจึงไม่จำเป็นต้องมี iPhone จะลองโครงการของคุณ 482 00:30:29,820 --> 00:30:34,440 รหัส S สามารถจำลองว่า คุณเป็นเราสามารถมองเห็นได้ในขณะนี้ 483 00:30:34,440 --> 00:30:36,406 >> มันสวยดี 484 00:30:36,406 --> 00:30:38,640 ก็สละเล็ก ๆ น้อย ๆ บิตของเวลาที่จะรวบรวม 485 00:30:38,640 --> 00:30:43,040 และโดยทั่วไปเรามี แอพลิเคชันที่ว่างเปล่า 486 00:30:43,040 --> 00:30:44,640 ซึ่งอันที่จริงไม่ทำอะไรเลย 487 00:30:44,640 --> 00:30:46,175 แต่ก็รวบรวม 488 00:30:46,175 --> 00:30:47,380 มันน่ากลัวสวย 489 00:30:47,380 --> 00:30:50,200 มันมากดีกว่า C ฮะ? 490 00:30:50,200 --> 00:30:52,130 สิทธิทั้งหมดแล้วขอ พยายามที่จะเพิ่มบางสิ่งบางอย่าง 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 หนึ่งแฟ้มที่มีนิด ๆ หน่อย ๆ แปลกที่นี่จะเรียกว่ากระดาน 493 00:31:02,650 --> 00:31:08,020 นี้เป็นจริงที่ดี คุณลักษณะที่น่ากลัวสำหรับรหัส S 494 00:31:08,020 --> 00:31:14,170 เพราะในรหัสวินาที, คุณสามารถลากจริง และวางองค์ประกอบบนอินเตอร์เฟซ 495 00:31:14,170 --> 00:31:17,430 และมันโดยตรงจะแสดงขึ้น 496 00:31:17,430 --> 00:31:18,055 ลองว่า 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> เราวางป้ายที่นี่ "สวัสดีโลก !!!" 499 00:31:27,236 --> 00:31:29,740 เราสามารถที่ศูนย์ 500 00:31:29,740 --> 00:31:30,970 เย็นสวย 501 00:31:30,970 --> 00:31:33,915 ตอนนี้ขอทำงานจำลองหยุดนี้ 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 ที่นี่เรามี "สวัสดีโลก !!!" 504 00:31:38,700 --> 00:31:40,810 เราไม่ได้ทำการเข้ารหัสใด ๆ 505 00:31:40,810 --> 00:31:42,750 ห่าที่เกิดขึ้น? 506 00:31:42,750 --> 00:31:45,880 นี่คือวิธีที่มีประสิทธิภาพ Interface Builder สามารถ 507 00:31:45,880 --> 00:31:48,030 ใครบางคนก็พูดว่า คุณสามารถอาจเป็นเพียงแค่ 508 00:31:48,030 --> 00:31:52,800 ดำเนินการตรวจสอบโดยไม่ต้องเขียน อาจจะเป็นพันสายรหัส 509 00:31:52,800 --> 00:31:54,820 โดยใช้เพียงแค่ Interface Builder 510 00:31:54,820 --> 00:31:59,680 แต่มันอาจจะไม่ได้ วิธีที่ดีที่สุดที่จะทำมัน 511 00:31:59,680 --> 00:32:01,670 >> ตอนนี้ให้ได้รับจริงลงไปที่การเข้ารหัส 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 ดังนั้นโครงสร้างของแฟ้ม เป็นจริงที่น่าสนใจจริงๆ 514 00:32:08,330 --> 00:32:15,610 เพราะขณะที่คุณอาจจะเห็นมี ไม่มีฟังก์ชั่นหลักที่ใดก็ได้ 515 00:32:15,610 --> 00:32:17,466 ดู? 516 00:32:17,466 --> 00:32:19,340 ในฐานะที่เราได้กล่าวมาก่อน คุณจะเห็นว่านี้ 517 00:32:19,340 --> 00:32:22,830 ไฟล์การดำเนินงาน สำหรับการเรียนที่เฉพาะเจาะจง 518 00:32:22,830 --> 00:32:25,690 แต่ไม่มีหลักที่ใดก็ได้ 519 00:32:25,690 --> 00:32:27,490 เพื่อที่จะเป็นหลัก? 520 00:32:27,490 --> 00:32:31,970 ที่จริงมีหลัก แต่ หลักถูกซ่อนจริงจากคุณ 521 00:32:31,970 --> 00:32:34,560 ที่สำคัญคือที่นี่ 522 00:32:34,560 --> 00:32:37,120 ที่มีลักษณะที่คุ้นเคย 523 00:32:37,120 --> 00:32:41,000 >> ดังนั้นโดยทั่วไปสิ่งที่ iOS จะทำภายในหลัก 524 00:32:41,000 --> 00:32:43,540 คือว่าเมื่อใดก็ตามที่สำคัญคือ เรียกว่าที่เป็นพื้น 525 00:32:43,540 --> 00:32:49,000 เมื่อใดก็ตามที่การตรวจสอบจะถูกดำเนินการมัน สร้างวัตถุที่เรียกว่า AppDelegate 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 ที่ผมกล่าวถึงก่อนหน้านี้ทั้งหมด การตรวจสอบวัตถุที่เป็นจริงด้วยตัวเอง 528 00:32:57,350 --> 00:33:02,270 ดังนั้นในทางนี้โดยทั่วไป แอป iOS จะบอกคอมไพเลอร์ 529 00:33:02,270 --> 00:33:05,540 ว่าตกลงฉันจะสร้าง ผลิตภัณฑ์ที่เรียกว่า AppDelegate, 530 00:33:05,540 --> 00:33:07,620 และเป็นไปได้ที่ app ของฉัน 531 00:33:07,620 --> 00:33:09,640 ดังนั้นคุณต้องไป ผ่าน AppDelegate ที่ 532 00:33:09,640 --> 00:33:12,040 และดูว่าผู้ชายคนที่ทำ 533 00:33:12,040 --> 00:33:14,850 งานของฉันจะทำเพื่อฉัน 534 00:33:14,850 --> 00:33:22,070 >> และใน AppDelegate คุณจะเห็นว่า มีบางฟังก์ชั่นที่แปลกจริงๆ 535 00:33:22,070 --> 00:33:25,290 ดีจริงวิธีการที่ แอปเปิ้ลได้ให้คุณ 536 00:33:25,290 --> 00:33:27,464 เหล่านี้คืออะไร 537 00:33:27,464 --> 00:33:31,010 เหล่านี้เป็นจริงเพียงโปรโตคอล ว่าผมได้พูดคุยเกี่ยวกับ 538 00:33:31,010 --> 00:33:35,670 ดังนั้นเหล่านี้เป็นเหตุการณ์ที่แอปเปิ้ล ได้ให้คุณเริ่มต้นด้วย 539 00:33:35,670 --> 00:33:38,050 ไม่มีอะไรในบางอย่าง ฟังก์ชั่นในขณะนี้ 540 00:33:38,050 --> 00:33:40,820 แต่ถ้าเราต้องการที่จะเริ่มต้น บางสิ่งบางอย่างสำหรับการตรวจสอบของเรา 541 00:33:40,820 --> 00:33:46,140 ก่อนที่จะได้รับในการแสดง มุมมองใด ๆ ที่เราทำที่นี่ 542 00:33:46,140 --> 00:33:51,150 >> คุณก็สามารถอ่านชื่อและที่ผมคิดว่า เหตุการณ์ที่เป็นจริงที่ชัดเจนจริงๆ 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 ดังนั้นตอนนี้หลักได้สร้าง วัตถุสำหรับ AppDelegate 545 00:33:58,350 --> 00:34:05,220 และสิ่งที่ AppDelegate จะไปทำ นอกจากนี้ยังเป็นจริงที่ซ่อนอยู่จากคุณ 546 00:34:05,220 --> 00:34:09,250 AppDelegate จะเริ่ม โหลดหุ้น ViewController 547 00:34:09,250 --> 00:34:13,170 ดังนั้นจึงเป็นพื้นจะเริ่มต้น โหลดขึ้นทุกมุมมองที่คุณมี 548 00:34:13,170 --> 00:34:17,500 และเพียงแค่ทำให้มุมมอง ขึ้นอยู่กับลำดับชั้น 549 00:34:17,500 --> 00:34:21,280 >> ดังนั้นในกรณีนี้เรามีเพียง มุมมองหนึ่งซึ่งอยู่ที่นี่ 550 00:34:21,280 --> 00:34:25,060 เพื่อให้เป็นมุมมองเท่านั้น ที่จะถูกเรียกว่า 551 00:34:25,060 --> 00:34:28,159 ตรรกะ ViewController อยู่ที่นี่ 552 00:34:28,159 --> 00:34:32,159 นี้เป็นรหัสที่จริง ควบคุมมุมมองที่เราเพิ่งเห็น 553 00:34:32,159 --> 00:34:33,679 สิทธิทั้งหมดมาทำอะไรที่นี่ 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 ดังนั้น viewDidLoad เสียงเหมือนเหตุการณ์ เมื่ออยู่ในความเป็นจริงนี้ยังเป็นผู้แทน, 556 00:34:50,560 --> 00:34:52,500 นี้ยังเป็นโปรโตคอล 557 00:34:52,500 --> 00:34:56,350 >> ดังนั้นไม่ว่ามุมมองที่ถูกโหลด ทุกอย่างภายในฟังก์ชั่น 558 00:34:56,350 --> 00:34:57,920 จะถูกเรียกว่า 559 00:34:57,920 --> 00:35:02,840 ในกรณีนี้เราจะเห็น "สวัสดี Tianyu! "ถ้าเราเรียกใช้โปรแกรม 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 มันรับนิด ๆ หน่อย ๆ ช้า รวบรวมไฟล์กระดาน 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 ดีแน่นอนเราจะเห็นผลลัพธ์สำหรับมัน 564 00:35:18,190 --> 00:35:20,720 มันเย็นสวย 565 00:35:20,720 --> 00:35:22,000 ตอนนี้ขอทำมาริโอจริง 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 ฉันจะกำหนด ทำงานได้อย่างรวดเร็ว 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: (int) ผลระดับ 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> สิทธิทั้งหมดนี้เป็นจริงที่น่ากลัว คุณลักษณะของรหัส S เสร็จอัตโนมัติ 572 00:36:06,410 --> 00:36:10,680 ดังนั้นเมื่อคุณเขียนและพิมพ์ใส่ มันได้รับแล้วขึ้นแม่แบบ 573 00:36:10,680 --> 00:36:12,325 สำหรับคุณซึ่งเป็นเย็นสวย 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 ที่ควรจะดูจริงๆ ที่คุ้นเคยกับพวกคุณ 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 ขออภัยที่เป็นความผิดของฉัน 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 สงวนเย็น 580 00:37:18,120 --> 00:37:22,710 ตรรกะที่ควรมีลักษณะที่คุ้นเคยจริงๆ เพื่อคุณผู้ชายโดยเฉพาะอย่างยิ่งเพียงมาริโอ 581 00:37:22,710 --> 00:37:26,140 >> แต่ตอนนี้เราจะพิมพ์ออกไป คอนโซลทุกครั้งเดียว 582 00:37:26,140 --> 00:37:29,280 เพราะเราต้องการที่จะให้อย่างใด การติดตามของสิ่งที่เรามีการพิมพ์ 583 00:37:29,280 --> 00:37:31,810 เรากำลังจะใช้ ส่งผลอย่างใดต่อมา 584 00:37:31,810 --> 00:37:35,010 เพื่อแสดงการพิมพ์ ผลออกมาให้กับผู้ใช้ 585 00:37:35,010 --> 00:37:37,730 ดังนั้นแทนที่จะเราเป็นแค่ ทุกอย่าง nslogging, 586 00:37:37,730 --> 00:37:42,410 ซึ่งเรากำลังเก็บได้ทุกอย่าง เป็นผลการเรียกฟังก์ชั่น 587 00:37:42,410 --> 00:37:44,070 แต่ตรรกะเป็นสิ่งเดียวกัน 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 หลังจากที่เราเสร็จเรา เพียงแค่พิมพ์ผลของเรา 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> และที่นี่แทนการพิมพ์ออกของฉัน ชื่อที่เรากำลังจะเรียกใช้ฟังก์ชัน 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 ลองมาดูสิ่งที่เกิดขึ้น 594 00:38:18,090 --> 00:38:21,240 โอ๊ะอย่างเห็นได้ชัด 595 00:38:21,240 --> 00:38:24,320 เราจะมีความสุข ปิรามิดเล็ก ๆ น้อย ๆ ออกจากที่นี่ 596 00:38:24,320 --> 00:38:28,370 นี้เป็นพื้น C เราไม่เพียง การจัดการที่คุณเรียกใช้ฟังก์ชัน 597 00:38:28,370 --> 00:38:30,010 และวิธีการที่ไม่มองเช่นฟังก์ชั่น 598 00:38:30,010 --> 00:38:31,560 ไม่มีอะไรที่แตกต่างกันคือ 599 00:38:31,560 --> 00:38:34,040 แต่นี้เป็นจริง ไม่น่าตื่นเต้นมากที่นี่ 600 00:38:34,040 --> 00:38:37,500 เพราะเราไม่เห็น อะไรจาก app iPhone 601 00:38:37,500 --> 00:38:42,120 >> ดังนั้นถ้าคุณมี iPhone จริง app-- ถ้าคุณจริงมีสิทธิมาริโอ iOS 602 00:38:42,120 --> 00:38:45,080 ตอนนี้คุณไม่ได้ไป เพื่อดูสิ่งที่ 603 00:38:45,080 --> 00:38:49,450 มีอะไรที่จะทำอย่างไรกับมาริโอเพราะ เอาท์พุททุกคนที่เข้ามาในคอนโซล 604 00:38:49,450 --> 00:38:51,620 จะถูกซ่อนไว้จากผู้ใช้ 605 00:38:51,620 --> 00:38:53,850 นี่คือสิ่งที่คุณเห็น ซึ่งก็คือ "สวัสดีโลก !!!" 606 00:38:53,850 --> 00:38:55,720 ไม่ดี 607 00:38:55,720 --> 00:39:03,090 ตอนนี้ขอพยายามที่จะทำให้ผู้ใช้เห็น ว่าสิ่งที่เรากำลังพิมพ์ออก 608 00:39:03,090 --> 00:39:06,000 ดังนั้นเราจึงไม่จำเป็นต้องติดป้ายอีกต่อไป 609 00:39:06,000 --> 00:39:09,800 ลองและคิดออกบางสิ่งบางอย่าง อื่น ๆ ที่อาจจะมีประโยชน์ 610 00:39:09,800 --> 00:39:12,140 >> มีจริงอย่างใดอย่างหนึ่ง องค์ประกอบที่เรียกว่า 611 00:39:12,140 --> 00:39:16,460 ฟิลด์ข้อความซึ่งสามารถทำได้ จะเป็นประโยชน์มากสำหรับเรา 612 00:39:16,460 --> 00:39:19,880 มันเป็นพื้นแสดงภูมิภาค ของข้อความที่สามารถแก้ไขได้ 613 00:39:19,880 --> 00:39:22,320 ดังนั้นที่มีลักษณะที่เป็นประโยชน์จริงๆ 614 00:39:22,320 --> 00:39:23,810 ตอนนี้ขอลากและวาง 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 ว้าวเรามีมุมมองข้อความ ในมุมมองของเราจริงๆแฟนซี 617 00:39:32,670 --> 00:39:35,430 นั่นเป็นนิด ๆ หน่อย ๆ มีขนาดใหญ่เกินไป 618 00:39:35,430 --> 00:39:38,150 ขอให้มีขนาดเล็กลง 619 00:39:38,150 --> 00:39:40,290 ใส่ลงในศูนย์ 620 00:39:40,290 --> 00:39:43,760 ทำให้มันเล็กได้เป็นอย่างดี 621 00:39:43,760 --> 00:39:50,110 >> ตอนนี้เรามีมุมมองข้อความที่เราจะทำได้ ถูกนำมาใช้ในการแสดงผลสุดท้ายของเรา 622 00:39:50,110 --> 00:39:52,860 แต่ตอนนี้มันเป็น แน่นอนไม่ได้ไปทำงาน 623 00:39:52,860 --> 00:39:56,970 เพราะมี no-- ViewController เราเพียงแค่ 624 00:39:56,970 --> 00:40:03,010 กำหนดไว้ไม่ทราบว่า มีมุมมองที่ข้อความออกมี 625 00:40:03,010 --> 00:40:06,550 ดังนั้นเราจึงจำเป็นอย่างใด เชื่อมโยงมุมมองข้อความที่เราเพิ่ง 626 00:40:06,550 --> 00:40:11,660 ที่สร้างขึ้นด้วยคลาสที่ ได้มาแล้วกับเรา 627 00:40:11,660 --> 00:40:14,860 >> วิธีที่เราทำว่าเป็น จริงที่วิเศษจริงๆ 628 00:40:14,860 --> 00:40:18,190 ดังนั้นเปิดกระดาน 629 00:40:18,190 --> 00:40:22,220 มีพิเศษคือ [ไม่ได้ยิน] เรียกว่า [? ผู้ช่วย?] [ไม่ได้ยิน] 630 00:40:22,220 --> 00:40:25,190 เมื่อคุณคลิกที่มัน จะเปิดแฟ้มที่สอง 631 00:40:25,190 --> 00:40:29,425 หนึ่งคือการเรียนและอื่น ๆ หนึ่ง เป็นมุมมองที่สอดคล้องกันสำหรับมัน 632 00:40:29,425 --> 00:40:31,920 มันง่ายมากที่เป็นประโยชน์มาก 633 00:40:31,920 --> 00:40:35,950 และขอเพียงแค่ผ่านไปไฟล์ .h 634 00:40:35,950 --> 00:40:39,110 การควบคุมนี้เป็น [ไม่ได้ยิน] ตรรกะ 635 00:40:39,110 --> 00:40:47,280 การควบคุมการกดและลาก มุมมองข้อความลงประกาศ 636 00:40:47,280 --> 00:40:48,780 เรากำลังจะไปเรียกว่า outputView 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 ต่อ 639 00:40:53,670 --> 00:40:59,420 ดังนั้นที่นี่เราได้ประกาศใหม่ สถานที่ให้บริการสำหรับการเรียน ViewController ของเรา 640 00:40:59,420 --> 00:41:02,300 และสถานที่ให้บริการใหม่ เป็นเพียงมุมมองข้อความ 641 00:41:02,300 --> 00:41:05,000 เราได้สร้างขึ้นในอาคารอินเตอร์เฟซ 642 00:41:05,000 --> 00:41:07,990 ดังนั้นในทางที่เราจะทำได้ การเข้าถึงข้อมูลทั้งหมด 643 00:41:07,990 --> 00:41:13,630 และจัดการกับทุกสิ่งที่อยู่ภายใน มุมมองการส่งออกซึ่งเป็นที่น่ากลัว 644 00:41:13,630 --> 00:41:19,260 >> ดังนั้นในรหัสจริงของเรา ขอทำอะไรกับมัน 645 00:41:19,260 --> 00:41:23,810 ดังนั้นเวลานี้เมื่อเราอยู่เช่นการพิมพ์ ออกผลขั้นสุดท้ายสำหรับมาริโอ 646 00:41:23,810 --> 00:41:28,020 เรากำลังอยู่ในการเข้าสู่ระบบไม่ได้อะไร 647 00:41:28,020 --> 00:41:30,080 ฉันหมายความว่าเราสามารถเก็บ งบการเข้าสู่ระบบ 648 00:41:30,080 --> 00:41:41,490 นอกจากนั้นเรา ส่งกมเราเพียงแค่ 649 00:41:41,490 --> 00:41:47,622 สร้างขึ้นเพื่อมุมมองการส่งออกซึ่ง เป็น UI TextView เราเพิ่งสร้างขึ้น 650 00:41:47,622 --> 00:41:48,746 ตอนนี้ขอดูสิ่งที่เกิดขึ้น 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 ว้าว 653 00:41:56,620 --> 00:41:59,130 เรามีปิรามิดในการตรวจสอบในขณะนี้ 654 00:41:59,130 --> 00:42:06,720 >> เพื่อให้ผู้ใช้สามารถดูการส่งออกของเราเพราะ ที่เราได้คัดลอกมาจากรหัสของเรา 655 00:42:06,720 --> 00:42:08,045 อินเตอร์เฟซของเรา 656 00:42:08,045 --> 00:42:10,950 มันเป็นเรื่องที่ดีงาม 657 00:42:10,950 --> 00:42:14,990 มันเป็นจริงไม่ ที่น่าตื่นเต้นเพราะเรา can-- 658 00:42:14,990 --> 00:42:18,250 ทั้งหมด app ที่จะทำคือ แสดงปิรามิดกับคุณ 659 00:42:18,250 --> 00:42:20,520 และมีอะไรที่คุณสามารถทำอะไรกับมัน 660 00:42:20,520 --> 00:42:22,330 มันไม่ได้เป็นที่น่าตื่นเต้นโดยเฉพาะอย่างยิ่ง 661 00:42:22,330 --> 00:42:27,840 ดังนั้นตอนนี้ขอให้ปุ่ม ที่จะล้างมุมมอง 662 00:42:27,840 --> 00:42:30,290 ดูเหมือนว่าปุ่มจะเป็นประโยชน์ 663 00:42:30,290 --> 00:42:33,270 ลากและวาง 664 00:42:33,270 --> 00:42:33,900 ปุ่มเดียว 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 ปุ่มสอง 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> ดังนั้นเมื่อเราคลิกซ้าย ปุ่มมุมมองควรล้าง 669 00:42:52,052 --> 00:42:53,635 ควรจะมีอะไรบนหน้าจอ 670 00:42:53,635 --> 00:42:56,970 และเมื่อเราคลิก ปุ่มขวามาริโอ 671 00:42:56,970 --> 00:42:59,740 มุมมองจะไปปรากฏตัวอีกครั้ง 672 00:42:59,740 --> 00:43:05,510 ดังนั้นวิธีนี้เรายังทำ สิ่งที่วิเศษการควบคุมและการลาก 673 00:43:05,510 --> 00:43:08,740 เพื่อการประกาศคลาส ใน director-- ผู้ช่วย 674 00:43:08,740 --> 00:43:11,600 ในมุมมองผู้ช่วย 675 00:43:11,600 --> 00:43:18,620 ในกรณีนี้เราจะมีการระบุ ว่าควรจะดำเนินการ 676 00:43:18,620 --> 00:43:19,120 clearMario 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> ดังนั้นที่นี่เราได้สร้างไว้แล้ว การกระทำที่เรียกว่า clearMario, 679 00:43:26,830 --> 00:43:34,210 ซึ่งเป็นวิธีการที่จะเรียกว่า เมื่อใดก็ตามที่เรากดปุ่มที่ชัดเจน 680 00:43:34,210 --> 00:43:41,030 ดังนั้นในรหัสจริงของเราให้เพียง ใส่ข้อความออกและมุมมองการส่งออก 681 00:43:41,030 --> 00:43:44,620 เป็นอะไรและวิธีการที่ มันจะปรากฏเป็นที่ชัดเจน 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 นอกจากนั้นให้สร้าง วิธีการอื่นที่เรียกว่า runMario 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 โอ้ขอโทษที่ไม่ควรจะเป็นสถานที่ให้บริการ 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 สิทธิทั้งหมดที่ควร จะดำเนินการได้เป็นอย่างดี 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> และเมื่อฟังก์ชั่นที่เป็น เรียกว่าเราก็ทำงานมาริโอสิบ 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 หวังว่ามันจะดี 692 00:44:39,780 --> 00:44:41,120 มันรวบรวม? 693 00:44:41,120 --> 00:44:43,920 ใช่ 694 00:44:43,920 --> 00:44:45,090 ตอนนี้เรามีมุมมอง 695 00:44:45,090 --> 00:44:46,560 เรามีการส่งออก 696 00:44:46,560 --> 00:44:50,040 และขอเพียงแค่เห็นสิ่งที่เกิดขึ้น 697 00:44:50,040 --> 00:44:52,590 ที่หายไป 698 00:44:52,590 --> 00:44:54,500 มันกลับมาอีกครั้ง 699 00:44:54,500 --> 00:44:57,620 ดังนั้นที่นี่เราได้ระบุ สิ่งที่ชนิดของฟังก์ชั่น 700 00:44:57,620 --> 00:45:00,400 จะถูกเรียกเมื่อ เราพิมพ์ในบางสิ่งบางอย่าง 701 00:45:00,400 --> 00:45:03,160 เมื่อเรากดปุ่มที่เฉพาะเจาะจง 702 00:45:03,160 --> 00:45:07,890 นี้เป็นพื้น รูปแบบการดำเนินการเป้าหมาย 703 00:45:07,890 --> 00:45:12,510 สำหรับเหตุการณ์ที่ขับเคลื่อนด้วย การเขียนโปรแกรมในวัตถุประสงค์ C. 704 00:45:12,510 --> 00:45:15,030 >> นอกเหนือจากนั้น มันไม่ได้เป็นที่น่าตื่นเต้นมาก 705 00:45:15,030 --> 00:45:19,810 เพราะเราไม่สามารถจริงๆเปลี่ยน วิธีการที่สูงพีระมิดจะเป็น 706 00:45:19,810 --> 00:45:23,640 ดังนั้นเราอาจต้องการอย่างใด ได้รับข้อมูลจากผู้ใช้ 707 00:45:23,640 --> 00:45:29,490 และเปลี่ยนความสูงของ ปิรามิดขึ้นอยู่กับสิ่งที่พวกเขาเอาท์พุท 708 00:45:29,490 --> 00:45:32,900 ดังนั้นเราจะทำอย่างนั้น 709 00:45:32,900 --> 00:45:38,720 ดังนั้นเวลานี้เมื่อเราเรียก runMario, เราไม่เพียงโทรมาริโอโดยตรง 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 ชื่อของคนนี้ 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> ผู้แทน 714 00:46:23,700 --> 00:46:25,160 นี้เป็นที่น่าสนใจมาก 715 00:46:25,160 --> 00:46:26,720 ผู้แทนคืออะไร? 716 00:46:26,720 --> 00:46:28,950 ฉันจะใส่ตัวเองที่นี่ 717 00:46:28,950 --> 00:46:31,038 และเรากำลังจะไปดู สิ่งที่หมายถึงในภายหลัง 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 ดังนั้นที่นี่เราได้สร้างขึ้นโดยทั่วไป กรณีเฉพาะที่เรียกว่าการแจ้งเตือน UI 720 00:46:51,120 --> 00:46:52,210 ดู 721 00:46:52,210 --> 00:46:54,440 มุมมองการแจ้งเตือน UI เป็น โดยทั่วไปสิ่งที่คุณจะ 722 00:46:54,440 --> 00:46:58,940 เห็นทุกครั้งที่สิ่งที่ปรากฏ และขอให้คุณสำหรับการป้อนข้อมูล 723 00:46:58,940 --> 00:47:03,080 เช่นเดียวกับสิ่งที่จะเกิดขึ้นเมื่อคุณกำลังพยายาม บางสิ่งบางอย่างที่จะซื้อที่ร้านค้าในการตรวจสอบ 724 00:47:03,080 --> 00:47:14,250 >> นอกจากนั้นหลังจากที่คุณ สร้างมันขึ้นมาเราก็แสดงการแจ้งเตือน 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 สิทธิทั้งหมดให้เพียงได้อย่างรวดเร็ว การทดสอบจะเห็นว่าการทำงานหรือไม่ 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 ที่เย็นมาก 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 ตอนนี้ขอจริงสร้าง ช่องใส่สำหรับการแจ้งเตือน UI 731 00:47:59,120 --> 00:48:01,170 นี่คือวิธีการที่เราทำอย่างนั้น 732 00:48:01,170 --> 00:48:07,490 และเราควรจะมี มุมมองการป้อนข้อมูลสำหรับการแจ้งเตือน 733 00:48:07,490 --> 00:48:09,020 เด็ดมาก 734 00:48:09,020 --> 00:48:12,330 ขอเพียงบอก 10 735 00:48:12,330 --> 00:48:14,900 >> มันไม่ได้ทำอะไรที่ถูกต้อง ในขณะนี้เพราะโทรจริง 736 00:48:14,900 --> 00:48:17,770 ไม่ได้เปลี่ยนแปลงสำหรับการดำเนินมาริโอ 737 00:48:17,770 --> 00:48:23,470 ดังนั้นนี้ได้กลายเป็นเล็ก ๆ น้อย ๆ บิตแปลกเพราะเมื่อใดก็ตามที่ 738 00:48:23,470 --> 00:48:30,790 เรากดปุ่มลงเมื่อใดก็ตามที่เรา กดปุ่มในมุมมองการแจ้งเตือน 739 00:48:30,790 --> 00:48:35,560 สิ่งที่ควรเกิดขึ้น แต่มันไม่ได้เกิดขึ้น 740 00:48:35,560 --> 00:48:37,220 เราจะจับว่าอย่างไร? 741 00:48:37,220 --> 00:48:41,280 เราจะรู้ว่าใช้วิธี ได้ออกแสดงการแจ้งเตือน 742 00:48:41,280 --> 00:48:45,630 และแล้วป้อนหมายเลขเพราะ ขวาตอนนี้ไม่มีอะไรที่เกิดขึ้นจริง 743 00:48:45,630 --> 00:48:50,450 >> ดีคุณอาจจะเดาได้ มันขวาคณะผู้แทน 744 00:48:50,450 --> 00:48:55,440 ดังนั้นในนอกจากทั้งหมด ประกาศเหล่านี้ 745 00:48:55,440 --> 00:49:03,190 เราต้องเพิ่มการมอบหมายงานใหม่ที่จะ เรียกว่าผู้แทนมุมมองการแจ้งเตือน UI 746 00:49:03,190 --> 00:49:06,440 เพื่อให้ทุกเดียว การทำงานร่วมกันหรือเหตุการณ์ 747 00:49:06,440 --> 00:49:10,190 ที่เรากำลังจะมี มีมุมมองที่การแจ้งเตือน UI 748 00:49:10,190 --> 00:49:14,100 กำลังจะได้รับการจัดการ โดยชั้นเรียนของเราได้เป็นอย่างดี 749 00:49:14,100 --> 00:49:26,297 >> ดังนั้นนอกเหนือจากการที่จะได้รับ คลิกที่ปุ่มแสดงการแจ้งเตือนที่ดัชนี 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 นี้จะมาถึง 752 00:49:37,730 --> 00:49:42,020 ดังนั้นในกรณีที่เรามี already-- เพื่อให้เรามี 753 00:49:42,020 --> 00:49:46,210 พบโปรโตคอลที่ จะจัดการกับเหตุการณ์เมื่อ 754 00:49:46,210 --> 00:49:51,320 เราคลิกปุ่มเสร็จสิ้น ในมุมมองของการแจ้งเตือน 755 00:49:51,320 --> 00:49:55,976 ดังนั้นเวลาที่เรายกเลิกทุก มุมมองการแจ้งเตือนนี้ควรเกิดขึ้น 756 00:49:55,976 --> 00:49:57,350 ผมขอทดสอบได้อย่างรวดเร็ว 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 ดีแน่นอนเราได้มาถึงที่นี่ 759 00:50:19,300 --> 00:50:22,210 >> ดังนั้นนี่คือสิ่งที่เราจะไม่ได้ ได้รับจริงเป็นจริง 760 00:50:22,210 --> 00:50:43,120 ได้รับการยกกำลังดังนั้นเราจึงต้องการที่จะได้รับการออก ข้อความที่เรามีก่อนหน้านี้ 761 00:50:43,120 --> 00:50:45,350 เข้ามาในมุมมองการแจ้งเตือน 762 00:50:45,350 --> 00:50:48,505 และขึ้นอยู่กับข้อความที่เราไม่ จะแสดงมาริโอ 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 นี้ได้อย่างรวดเร็วจะเปิดออก ถ้ามันใช้งานได้จริงหรือไม่ 765 00:50:55,480 --> 00:50:59,476 ดังนั้นในกรณีที่ถ้าเราป้อนข้อมูล สมมุติว่า 10 เราจะเห็น 10 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> ดีมากที่เราทำมีจำนวนที่นี่ 768 00:51:05,210 --> 00:51:06,470 มันเป็นเรื่องที่ดีงาม 769 00:51:06,470 --> 00:51:16,840 ตอนนี้ขั้นตอนสุดท้ายจะ be-- ดังนั้น ขั้นตอนสุดท้ายที่เราต้องทำในขณะนี้ 770 00:51:16,840 --> 00:51:21,100 เป็นเพียงการเรียกมาริโอที่มี ระดับบนพื้นฐานของข้อมูล 771 00:51:21,100 --> 00:51:23,270 ที่เราได้ใส่ลงไปในมุมมองการแจ้งเตือน 772 00:51:23,270 --> 00:51:26,920 ดังนั้นเราจึงจำเป็นต้องแปลง สตริงเป็น iOS ของคุณนี้ 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 ล้นคงเป็นที่น่ากลัวมาก 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 และแล้วเราก็เรียกตัวเอง ค่า marioWithLevels 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 ลองมาดูกันว่าจะ ทำงานจริงหรือไม่ 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> เรากำลังให้แล้วปิรามิด 781 00:52:01,550 --> 00:52:04,785 ลองเปลี่ยนความสูง 782 00:52:04,785 --> 00:52:06,530 ที่ใช้งานได้จริง 783 00:52:06,530 --> 00:52:07,610 มันเย็นสวย 784 00:52:07,610 --> 00:52:10,420 ดังนั้นตอนนี้คุณสามารถเพียงแค่ การป้อนค่าใด ๆ ที่คุณต้องการ 785 00:52:10,420 --> 00:52:12,440 ขอเพียงบอกว่าสี่ 786 00:52:12,440 --> 00:52:14,260 ที่น่ากลัวสวย 787 00:52:14,260 --> 00:52:17,090 ดังนั้นนี่เป็นพื้น ตัวอย่างรวดเร็วจริงๆ 788 00:52:17,090 --> 00:52:23,170 สำหรับวิธีการสร้างโครงการในรหัส S และวิธีการอย่างรวดเร็วจริงๆลวดขึ้น 789 00:52:23,170 --> 00:52:26,220 เหตุการณ์บางอย่างที่ง่ายจริงๆและฟังก์ชั่น 790 00:52:26,220 --> 00:52:28,840 >> ดังนั้นแหล่งที่มาที่เป็นไป ที่จะใส่ออนไลน์ในภายหลัง 791 00:52:28,840 --> 00:52:33,400 ดังนั้นหากคุณสนใจ ในวิธีการที่ iOS ของมาริโอทำงาน 792 00:52:33,400 --> 00:52:38,360 ฉันจะใส่ตรงเดียวกัน โครงการบนเว็บไซต์ CS50 ภายหลัง 793 00:52:38,360 --> 00:52:41,260 เรากำลังทำพื้นด้วย ฤดูร้อนและก่อนที่เราจะจบ 794 00:52:41,260 --> 00:52:45,190 ผมแค่อยากจะชี้ให้พวกคุณไป บางแหล่งข้อมูลที่น่ากลัวจริงๆ 795 00:52:45,190 --> 00:52:47,550 ที่มีอยู่ทั่วไป 796 00:52:47,550 --> 00:52:52,270 >> เห็นได้ชัดว่าเอกสารแอปเปิ้ล เป็นไปได้ที่เป็นประโยชน์มาก 797 00:52:52,270 --> 00:52:57,630 แต่นอกเหนือจากนั้นผมโดยเฉพาะอย่างยิ่ง แนะนำแหล่งที่สี่, โรงเรียนรหัส 798 00:52:57,630 --> 00:53:02,120 บ้านต้นไม้, AppCoda และวิดีโอ WWDC 799 00:53:02,120 --> 00:53:07,270 โรงเรียนรหัสและบ้านต้นไม้อยู่ สองเว็บไซต์ที่ให้ความรู้ออนไลน์ 800 00:53:07,270 --> 00:53:10,210 ซึ่งมุ่งเน้นเฉพาะ วิศวกรรมซอฟแวร์ 801 00:53:10,210 --> 00:53:16,930 โดยเฉพาะอย่างยิ่งสำหรับโรงเรียนรหัสพวกเขา มีการกวดวิชาที่ดีจริงๆบน iOS 802 00:53:16,930 --> 00:53:19,550 >> นั่นคือตัวอย่างรวดเร็วจริงๆสำหรับมัน 803 00:53:19,550 --> 00:53:22,980 พวกเขาจริงสร้าง cute-- จริงๆ ดูว่า iPhone น้อยน่ารัก 804 00:53:22,980 --> 00:53:24,920 เพื่อนที่นั่นก็น่ากลัวสวย 805 00:53:24,920 --> 00:53:31,010 และวิธีที่พวกเขาอธิบายวัตถุประสงค์ ไวยากรณ์ C เป็นที่ชัดเจนอย่างสมบูรณ์แบบ 806 00:53:31,010 --> 00:53:32,230 บ้านต้นไม้เหมือนกัน 807 00:53:32,230 --> 00:53:34,660 และ AppCoda เป็นฟอรั่ม 808 00:53:34,660 --> 00:53:38,130 เป็นจริงบล็อกที่กำลังวิ่ง โดยมีประสบการณ์จริงๆวัตถุประสงค์ C 809 00:53:38,130 --> 00:53:39,120 โปรแกรมเมอร์ 810 00:53:39,120 --> 00:53:43,950 และแบบฝึกหัดทุกคนใน AppCoda มี สวยสั้นและง่ายต่อการใช้ 811 00:53:43,950 --> 00:53:45,390 ขอแนะนำ 812 00:53:45,390 --> 00:53:47,700 >> และถ้าคุณเป็นนักพัฒนา, แน่นอนไปตรวจสอบ 813 00:53:47,700 --> 00:53:55,660 วิธีการวิดีโอ WWDC ที่คุณสามารถ เรียนรู้เกี่ยวกับการเขียนโปรแกรมใหม่ล่าสุด iOS 814 00:53:55,660 --> 00:53:58,250 เทคนิค APIs และห้องสมุด 815 00:53:58,250 --> 00:54:02,850 เพื่อให้เป็นที่สวยมาก มันสำหรับการสัมมนา 816 00:54:02,850 --> 00:54:03,820 ขอบคุณมาก 817 00:54:03,820 --> 00:54:08,040 และผมหวังว่าคุณจะมีความสุข การสร้างแอป iOS ของคุณเอง 818 00:54:08,040 --> 00:54:09,302