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