>> RHED SHI: Welcome to იხილეთ CS50 სემინარი -
შესავალი iOS.
დიდი მადლობა მობრძანებისთვის.
იმედი მაქვს, თქვენ, ისევე როგორც აღფრთოვანებული როგორც მე ვარ დაახლოებით iOS.
გასულ წელს, მე CS50 როგორც მეორე, და მე, ძირითადად, ცნობილი გახდა, iOS ჩემი
საბოლოო პროექტი.
და ეს იყო საკმაოდ -
კარგად, ეს არ იყო ადვილი, მაგრამ არსებობს უამრავი მხარდაჭერა გაკვეთილები ონლაინ რეჟიმში.
და მე ნამდვილად იმედი მაქვს, რომ ამ სემინარი, მე მივცემ თქვენ ბიჭები ხელმძღვანელი
დაიწყება iOS განვითარების
>> ასე რომ, იმ თვალსაზრისით, iOS განვითარება, არსებობს ორი ძირითადი რამ ჩვენ
მინდა დასაფარავად დღეს.
პირველი, ენა -
ენა იქნება Objective-C. ჩვენ რეალურად მოვისმინოთ
მართლაც რაღაც საინტერესო.
ასე რომ, თქვენ შეგიძლიათ შეუერთდება მთელი Apple საზოგადოება დეველოპერები და ავაშენოთ
მართლაც გასაოცარია apps.
>> ასევე, iOS 7 არის ლამაზი, იმედია, ზოგიერთი თქვენგანი.
მაგრამ საკამათო, მე ვიცი.
და ძირითადად, რა გსურთ არის სახელმძღვანელო თქვენ მეშვეობით Objective-C, ასევე
Xcode, რომელიც ინტეგრირებული განვითარების გარემო, რომ თქვენ გექნებათ
მუშაობის for iOS.
>> და ასე, უბრალოდ სიტყვა Objective-C. ძირითადად, ეს ზუსტად იგივე როგორც C,
მაგრამ ბევრი სხვა რამ.
ასე რომ, უფრო მკაცრად, სინამდვილეში სუპერ მითითებული C. ასე რომ, ყველაფერი, რაც თქვენ
შეგვიძლია გავაკეთოთ C ახლავე, რომელიც ძირითადად მინდა pset 0 გზით 6, თქვენ
შეგვიძლია გავაკეთოთ Objective-C.
>> ასე რომ, ვერ ვგრძნობ ეშინია ამ ახალი ენა, რომ თქვენ აპირებთ სწავლობენ.
თქვენ უკვე დაფარული ბევრი, რადგან თქვენ ყველა გაკეთდეს C ამ წარსულის
სემესტრის გარდა ახლა თქვენ აპირებს აქვს კიდევ ბევრი მუშაობა.
და მე უბრალოდ აპირებს გამოიწვევს თქვენ მეშვეობით რამდენიმე მაგალითი, რომ ხაზი გავუსვა ზოგიერთი
ძირითადი განსხვავებები, რომ მივხვდი, იყო მართლაც მნიშვნელოვანია, როდესაც გავიგე,
Objective-C შარშან.
>> ისე, რეალურად, ასე რომ, მეორე მხრივ არის, Objective-C არის, ცხადია,
ობიექტზე ორიენტირებული.
და ჩვენ განვიხილავთ ცოტა იმაზე, თუ რა ეს ნიშნავს, რომ მოგვიანებით.
ძირითადად, ეს მოსწონს თუ როგორ მუშაობდა structs ამ წარსულში pset, ერთად
კვანძების და მსგავსი სხვა რამ, როგორიცაა, რომ.
გარდა, Objective-C, ყველაფერი არის ობიექტი, და თქვენ იქნება
გავლით გარშემო მითითებას ობიექტები ვიდრე ღირებულებების თავს.
ასე რომ, ეს უბრალოდ რაღაც მნიშვნელოვანი უნდა გვახსოვდეს.
>> ასე რომ, რატომ არ გვაქვს იწყება რამდენიმე განსხვავებები სინტაქსი შორის C და
Objective-C?
მინდა ხაზი გავუსვა # მოიცავს, თქვენ ვიცი, სტანდარტული io.h C და C + +, ერთად
Objective-C მობილური, რაც არის # იმპორტის და შემდეგ გარკვეული
header ფაილი.
ამ შემთხვევაში, ეს იქნება UIKit, თქვენ იცით, ირიბის UIKit.h.
ეს ასევე შეიძლება იყოს, თქვენ იცით, MKMapview თქვენ ირიბის MKMapview.h თუ გსურთ
ამის გაკეთება, ისევე, როგორც რუკაზე შიგნით თქვენი app.
მსგავსი რამ, როგორიცაა, რომ.
>> ასე რომ, მთავარია, მოიცავს უკვე შეიცვალა იმპორტი.
მაგრამ იდეა რჩება.
თქვენ ვაპირებთ იყოს იმპორტიორი გარკვეული of header ფაილი თქვენი პროგრამა.
>> ასევე მინდა ხაზი გავუსვა სხვაობა შორის printf და NSLog.
თუმცა, როგორც ჩვენ განაცხადა ადრე, Objective-C მკაცრი სუპერ კომპლექტი
C, რაც ნიშნავს, რომ printf არსებობს Objective-C, ძალიან.
მაგრამ, ყველაზე ხალხი არ გამოიყენოთ, რომ.
ყველაზე ადამიანი სარგებლობს ამ NSLog, რადგან იგი გაძლევთ დროის შტამპი, და ვნახავთ
ეს ქმედება მოგვიანებით.
მაგრამ, ეს ზოგადად უფრო სასარგებლო გზა ამობეჭდოთ ცვლადები.
>> და ასევე მინდა ხაზი გავუსვა, რომ NSLog იღებს მხოლოდ იგივე
placeholder ფასეულობებზე printf აკეთებს -
ასე რომ% d არის int, % F არის float.
თუმცა, მე მინდა ხაზი გავუსვა, ამ ბოლო ერთი -
NSLog% at ნიშანი -
რომ არის placeholder for ობიექტი.
და როგორც მე ვთქვი ადრე, Objective-C გარიგებებს საკმაოდ ბევრი ძირითადად ობიექტები,
და ა.შ. ეს მოვა გამოყენება როდესაც თქვენ გსურთ ამობეჭდოთ, ალბათ, შესაძლოა,
NSArray, ან NSDictionary, ან NSString.
>> ასე რომ, ასევე შეამჩნევთ, რომ, ჩვენი NSLog განცხადებაში, ჩვენ გვაქვს ერთი ნიშანი თვალწინ
საქართველოს ციტატა -
რომ არის ნიშნავდეს, რომ სტრიქონები, ახლა, Objective-C არის ობიექტები.
ისინი აღარ უბრალოდ char ვარსკვლავი.
ისინი ობიექტები და განიხილება, როგორც ასეთი.
>> ასე რომ, ეს მართლაც მნიშვნელოვანია, რომ როდესაც თქვენ იყენებთ NSLog სჭირდება NS
string, რაც იმას ნიშნავს, რომ თქვენ უნდა მოიცავს at წინაშე თქვენი
ციტატა ნიშნები.
და ამიტომაც ხედავთ, აქ, ყველა ჩემი ფუნქცია მოუწოდებს ამ NSLog, I
აქვს ერთი თვალწინ quotes, მაშინაც კი, მიუხედავად იმისა, რომ% d და% f ს
ყველა იგივე C.
>> ნებისმიერი კითხვები აქამდე?
ვეცდები გავლა ამ სწრაფად, ისე, რომ ჩვენ შეგვიძლია უფრო მეტი დრო მუშაობა
ერთად Xcode და Objective-C, ამიტომ რომ თქვენ ბიჭები შეგიძლიათ მიიღოთ მეტი
იცნობს მას.
>> შემდეგი, მე მინდა ხაზი გავუსვა, რაღაც კონცეპტუალურად მნიშვნელოვანია.
ასე რომ, C, საუკეთესო რამ ფუნქციები.
ჩვენ ფუნქცია ზარი.
ჩვენ ვაცხადებთ ფუნქციები ამ გზა, დაბრუნების ტიპის პირველი, მაშინ
ფუნქციის სახელი, ფრჩხილებში, ხოლო შემდეგ რაც არ უნდა არგუმენტები და ტიპის
ეს არგუმენტები ჩვენ გვინდა გავლა შემოსული
და Objective-C, რადგან ყველაფერი არის ობიექტის ან კლასის -
ასე რომ კლასი და ობიექტი ორი თვალსაზრისით, რომ ძირითადად სინონიმი ერთმანეთს,
ასე რომ შეიძლება მათი გამოყენება interchangeably მთელ სემინარს.
>> მაგრამ, თქვენ ნახავთ, რომ ჩვენ გვაქვს მეთოდები Objective-C ვიდრე ფუნქციები.
და მეთოდები ეკუთვნის ობიექტები.
ასე რომ, ისევე, როგორც, შესაძლოა, მიიღოს მაგალითად, node -
ჩვენი type [INAUDIBLE]
კვანძის ეხლა pset 6 ან 5 -
ჩვენ სიტყვა, ქონების, ან მომდევნო კვანძის მაჩვენებელი.
მეთოდები, უბრალოდ ფუნქციები შიგნით გარკვეული სტრუქტურა.
>> ასე რომ, ამ შემთხვევაში, სტრუქტურა იქნება ობიექტი, და მაშინ მეთოდი
რაღაც რომ ეკუთვნის ობიექტი.
და ეს არის, თუ როგორ აცხადებენ, სახის, მეთოდი.
თქვენ უნდა დაიწყოს, კიდევ ერთხელ, დაბრუნება ტიპი - ასე რომ, მე შევეცადე ფერი
კოდექსის გასაღები სიტყვა აქ ასე რომ თქვენ ბიჭები ხედავთ, მინიმუმ, გაფორმებით
მსგავსება შორის ფუნქცია დეკლარაციები და საშუალებას დეკლარაციებს.
ასე რომ, თქვენ დაიწყოს, თქვენ იცით, დაბრუნება type - ამ შემთხვევაში, ეს მასივი, ან
NSArray მაჩვენებელი -
და მაშინ თქვენ ამ მეთოდით.
და მაშინ, რა არის საინტერესო აქ არის რომ ნაცვლად, რომელმაც ფრჩხილებში, ჩვენ
აქვს ამ colons.
და მაშინ, თვალწინ ჩვენი არგუმენტები, ჩვენ მა, კიდევ ერთხელ, ფრჩხილებში ტიპის
ჩვენი არგუმენტი.
>> ასე რომ, ახლა მე ვცდილობ, რათა შედარება, თქვენ იცით, N და
ნომერი, ან, რადგან ისინი ორივე როგორიცაა ints.
და შემდეგ, მეორე არის NSUInteger ტიპის.
და მაშინ, Objective-C, როცა მინდა მქონდეს არგუმენტები
თქვენი მეთოდი პუნქტი, თქვენ, სახის, ცალკე მათ სახის მოსწონს ეს -
მე არ ვარ საკმაოდ დარწმუნებული როგორ აღწერს მას, მაგრამ ეს არის კარგი მაგალითი იმისა, თუ როგორ
შეიძლება მქონდეს არგუმენტები არსებობს.
>> თქვენ შეიძლება, რა თქმა უნდა, მხოლოდ სრულიად იგნორირება andArray colon NSArray
array თუ უნდოდა მხოლოდ ერთი მეთოდი რომ იღებს ერთი არგუმენტი.
დიახ, კითხვა.
>> აუდიტორია: ორივე NSUInteger და NSArray არგუმენტები, რომ შეიძლება იქნას
ფარგლებში NSArray?
>> RHED SHI: დიახ.
ასე რომ, ნება მომეცით აგიხსნათ.
ასე რომ, დიახ.
ასე რომ, კითხვა არის NSUInteger და NSArray * ტიპის არგუმენტები,
და ეს სწორია.
ასე რომ, თქვენ ყოველთვის გვინდა დააკონკრეტა, თუ რა გაცნობის თქვენი არგუმენტი.
და აქ, მე ვცდილობ რომ წარმოგიდგინოთ ზოგიერთი სინტაქსი და vocab of
Objective-C, ამიტომ ეს არის ფაქტობრივი ტიპი რომ თქვენ უნდა საქმე.
>> და როგორც თქვენ შეამჩნევთ, კოლექტორები აღარ არიან, სახის,
მარტივი bracket რამ.
ისინი ობიექტები.
მიუხედავად იმისა, რომ, თუ ჩვენ წასვლა მომდევნო slide, ჩვენ ვხედავთ, რომ ჩვენ შეგვიძლია
მყარი კოდი NSArray Objective-C ერთად უბრალოდ ერთი სიმბოლო წინაშე
ფრჩხილებში.
მე არ ვარ, რეალურად, სრულიად დარწმუნებული, I syntactically მყარი კოდირებული მასივი
სწორად C ვერსია, მაგრამ ეს არის ის, უნდა იყოს C მასივი.
>> ასე რომ, ეს არის ის, თუ როგორ, თქვენ იცით, შესაძლოა გამოიყენოთ ფუნქცია ან
მეთოდები, რომ ჩვენ ადრე შექმნილი.
უფლება?
ასე რომ, ეს არის, სადაც ჩვენ ვაცხადებთ ჩვენი ფუნქცია და ჩვენი მეთოდი.
და ახლა ჩვენ გვინდა გამოვიყენოთ მათი ჩვენი პროგრამა, და ეს არის
როგორ უნდა გავაკეთოთ.
ასე რომ, C, თქვენ უნდა, თქვენ იცით, ალბათ, bool b, და თქვენ მას
გაუტოლდება ფუნქცია, და შემდეგ თქვენ კორიდორი არგუმენტები.
>> Objective-C, ეს საკმაოდ ბევრად იგივე.
თქვენ გაქვთ NSArray * my_array, და ეს აპირებს გაუტოლდება - ახლა, მხოლოდ
განსხვავება აქ არის ამ ობიექტის რამ, რომელიც მე მონიშნულია ყვითელი და
როგორც ხედავთ, C, არსებობს არა სხვა ყვითელი სიტყვა.
და ეს იმიტომ, რომ მეთოდები ეკუთვნის გარკვეული ობიექტი.
ასე რომ, ამიტომ მე უნდა ობიექტი რომ, სახის, უწოდებს ამ მეთოდით
ნომერი ნულოვანი და შემდეგ NSArray a, b, c, d.
ნებისმიერი კითხვები რომ?
>> ჩვენ დავინახავთ, ეს ცნებები აქცია საკმაოდ მალე, როდესაც ჩვენ წასვლას დემო.
OK.
ახლა, მინდა გაიგო ცოტა მოკლედ შესახებ Xcode 5, რომელიც არის
ინტეგრირებული განვითარება გარემოს რომ თქვენ უნდა მუშაობა.
მე ვიცი, რომ ბევრი თქვენგანი, ან შენ, არ გაქვთ Macs, რომელიც არის პრობლემა
რადგან Xcode არ არის შესაძლებელი Windows და PC.
არ მკითხოთ რატომ, მაგრამ ალბათ -
yeah, კორპორატიული.
როგორიც არ უნდა იყოს.
მაგრამ მაინც, ასე რომ, მე ბოდიშს, თუ ზოგიერთი თქვენ უნდა ჩამოტვირთოთ გარკვეული
ვირტუალური მანქანა for Mac in იმისათვის, რომ აწარმოებს Xcode 5.
მაგრამ ეს არის საკმაოდ nifty პროგრამული უზრუნველყოფის გამოყენება.
>> ასე რომ, სანამ ჩვენ ჩაყვინთვის შევიდა ნებისმიერი სახის დემო, მინდა გაჩვენოთ
სურათს რა Xcode ჰგავს თქვენი window და შემდეგ საუბრობენ
რა მთელი ეს სივრცე.
ასე რომ, ეს სახის მოსწონს სწავლობენ გამოიყენოთ Microsoft Word, გარდა გსურთ
გაეცნოს ყველა სხვადასხვა რამ, რომ
მიმდინარეობს აქ.
>> ასე რომ, პირველ რიგში, მინდა აღვნიშნო, რომ თქვენ to პანელი ზედა.
თქვენ ნახავთ, რომ ზედა, თქვენ ფაილის სახელი -
ან, ფაქტობრივად, თქვენი პროექტის სახელწოდება და შემდეგ თქვენი ფაილის სახელი.
მხედველობაში პიესა და გაჩერება ღილაკებით.
ეს არის პირობა, რომ თქვენ უნდა გამოყენებით აწარმოებს თქვენი app შესახებ
სიმულატორი -
iOS სიმულატორი.
ეს ავტომატურად მოყვება Xcode 5, ასე რომ თქვენ არ უნდა ფიქრი
ჩამოტვირთვის გარკვეული სიმულატორი.
უბრალოდ დააჭირეთ play და მაშინ იგი გადის თქვენი app.
და შეგიძლიათ ითამაშოთ გარშემო თქვენთან ერთად, და თქვენ ნახავთ თუ როგორ მუშაობს შემდეგ.
>> და შემდეგ, ქალაქის ცენტრში, რა თქმა უნდა, სადაც ყველა თქვენი ლამაზი კოდია
აპირებს წავიდეს.
და შემდეგ, მარცხენა მხარეს, თქვენ აქვს ამ, სახის, ფოლდერი -
ნავიგაცია -
და მაშინ, თქვენ ასევე ვხედავთ, რომ ერთად ერთად საქაღალდეში ხატი, არსებობს
bunch სხვა ხატები, რომ სასარგებლო იქნება მოგვიანებით.
>> და შემდეგ, მარჯვენა მხარეს არის სასარგებლო ტერიტორია, სადაც შეგიძლიათ მუშაობა
ზოგიერთი ობიექტი და დააკონკრეტა, თქვენ ვიცით, რა ფერი უნდა იყოს, რა
ტექსტის შრიფტი უნდა იყოს, et cetera.
მიუხედავად იმისა, რომ ყველაფერი, რასაც აკეთებთ ამ სასარგებლო ფართი, შეგიძლიათ
გავაკეთოთ კოდი ისევე.
ასე რომ, მე გადის ორ მაგალითები გამოყენება, უბრალოდ, არ კოდი at
ყველა - ან ძალიან მინიმალური კოდი -
ლექსები ყველა კოდი, მხოლოდ ისე, რომ თქვენ ბიჭები იცით, რა შეგიძლიათ და არ შეუძლია გააკეთოს
Xcode და Objective-C.
>> და მაშინ, საბოლოოდ, ქვემოთ ბოლოში, თქვენ გაქვთ გამართვის ფართობი.
ასე რომ, თქვენ აღარ აწარმოებს GDB, et cetera, თქვენს პროგრამებში.
ეს ავტომატურად აკეთებს იგი თქვენთვის.
და ასევე შეგიძლიათ ბეჭდვა პერსონალის ამ სფეროში.
ასე რომ, რეალურად, მოგვიანებით, ჩვენ გავლა mario.c, თუ ბიჭები მაინც მახსოვს
, რომ Xcode.
ასე რომ, უნდა იყოს fun.
>> და მაშინ, მხოლოდ მოიტანს უკან Objective-C, მინდა ხაზი გავუსვა, თუ რა
შეგიძლიათ გააკეთოთ თუ განცხადებებს.
ასე რომ, თქვენ იცით, იმიტომ, Objective-C არის superset C, ყველაფერი, რასაც აკეთებთ არის,
ფაქტიურად, იგივე C. თქვენ უბრალოდ აქვს უმნიშვნელო განსხვავებები.
ასე რომ, თქვენ შეამჩნევთ ფორმა თუ განაცხადი იგივეა - თქვენ გაქვთ
თუ, და შემდეგ თქვენ უნდა ფრჩხილებში ერთად მდგომარეობა შიგნით, და მერე
curly აფრთხილებს რასაც თქვენ გსურთ შიგნით არსებობს.
>> თუმცა, მე მინდოდა, რომ ეს slide up აქ, უბრალოდ, ცხადყოფს, რომ,
იმიტომ, რომ ჩვენ საქმე გვაქვს ობიექტების ახლა, ჩვენ უნდა გამოვიყენოთ ეს ყველაფერი
მოუწოდა, როგორიცაა, უდრის ტექსტი, რომელიც არის ერთსა, მეთოდი
სიმებიანი ან NSString ობიექტი.
ასე რომ, სიტყვა, ამ შემთხვევაში, არის NSString წინააღმდეგი, და მას აქვს მეთოდი ეწოდება არის
ტოლი სიმებიანი და მაშინ ჩვენ გავლის მძიმე კოდირებული string ვხედავ
თუ არა იმ ტოლია ერთმანეთს.
>> ნებისმიერი კითხვები აქამდე?
OK.
და, მინდა წასვლა განთავსების განცხადებაში ასევე.
>> ასე მაგალითად, თუ გვინდოდა loop მეტი სიგრძეზე სიმებიანი C, ამ
უნდა იყოს ნაცნობი თქვენ.
და, Objective-C, მე მინდა ხაზი გავუსვა ამ, სახის,
მეთოდი ეწოდება რაოდენობა.
ისე, რეალურად, ნება მომეცით მხოლოდ მიიღოს, რომ უკან.
გრაფი მეთოდი მასივი.
თუმცა, ეს უფრო კონკრეტულად ქონების მასივი, რის გამოც თქვენ
შეგიძლიათ გამოიყენოთ dot ნოტაცია.
მაგრამ მე არ მინდა ჩავერთო ზედმეტად ამ კონცეპტუალური პერსონალი, მინდა
აჩვენებს, თუ როგორ რამ გამოიყურება როგორც Objective-C წინააღმდეგ C.
>> და ასევე, მე მინდა აღვნიშნო, რომ მიუხედავად იმისა, რომ მე გამოყენებით NSUInteger
თვალწინ ჩემი i ის Objective-C, ასევე, შეგიძლიათ გამოიყენოთ int, რადგან int არის
სრულიად მართებული Objective-C, ასევე.
დიახ?
>> აუდიტორია: Is it just სტილისტური, ან -
>> RHED SHI: ჰო.
ასე რომ, როგორც თქვენ ნახავთ -
ასე რომ, საკითხი იყო ის არის, რომ უბრალოდ სტილისტური საკითხი.
როგორც თქვენ ნახავთ, მე მაქვს, სახის, ვარსკვლავი ვარსკვლავით რამ ქვემოთ ბოლოში და
ბმული გადაგიყვანთ Stack Overflow შექმნას, სადაც ვინმე განმარტავს,
განსხვავება int in NSInteger და NSUInteger.
და ასე შემდეგ, შეგიძლიათ წაიკითხოთ ამის შესახებ მოგვიანებით.
ეს სლაიდები იქნება, რა თქმა უნდა, ხელმისაწვდომი.
>> ვნახოთ.
OK, გასაოცარია.
ასე რომ, ეს ასევე შედის slide რადგან ვფიქრობდი, რომ ეს იყო დიდი
ნახვა, რომელიც წარუდგენს თქვენ to Objective-C სინტაქსი.
ასე რომ, რეალურად, რატომ არ გვაქვს გადავა Chrome და შეამოწმეთ ეს საიტი?
>> უფლება.
ასე რომ, რაც მე მინდა გაჩვენოთ ბიჭები აქ არის ამ იმიჯი.
ასე რომ, ეს არის ის, სახის, იქნება რა თქვენ აპირებს ვხედავ შიგნით ნებისმიერი
Xcode ფაილი.
სინამდვილეში, რატომ არ გვაქვს მხოლოდ მიიღოს მომენტი, სახის, რომ ეს შემოსული
>> ასე რომ, ეს წიგნაკი -
რომ ობიექტი, რომელიც ჩვენ საქმე გვაქვს.
და შემდეგ, ის აშკარად იქნება მემკვიდრეობით რამდენიმე სხვა ობიექტი, მაგრამ
თქვენ არ უნდა ფიქრი, რომ.
და შემდეგ, ეს, ალბათ, აქვს ზოგიერთ წევრ ცვლადები.
>> მთავარია მე მინდა გაჩვენოთ არის მაგალითად მეთოდები, აქ.
ასე რომ, მაგალითად მეთოდები აღნიშნა ამ მინუსის სიმბოლოსაგან.
და მაშინ, როგორც თქვენ შეამჩნევთ, ჩვენ უკვე დაწყებული ვხედავ პარადიგმა
განთავსების საშუალებას დეკლარაცია, არა?
დაბრუნების ტიპის, მეთოდის სახელი, და მაშინ ტიპის არგუმენტი, და
მერე სახელით არგუმენტი.
და ეს მინუს ნიშანი ნიშნავს, რომ ის მაგალითად მეთოდით, რაც იმას ნიშნავს,
ეს მეთოდები ხელმისაწვდომია მხოლოდ ობიექტი, რომელიც უკვე ხდება.
>> განსხვავებით, რომ, მეთოდები პლუს მოაწეროს წინ მათგანი კლასი
მეთოდები, რაც იმას ნიშნავს, რომ შეგიძლიათ დარეკოთ ეს მეთოდები, მაშინაც კი თუ თქვენ არ გაქვთ
ობიექტი განთავსებულია ამჟამად.
ასე რომ, ამის ნათელი მაგალითია, NSString არის კლასი.
და შეგიძლიათ დარეკოთ, მაგალითად, კლასი მეთოდების NSString -
ფაქტობრივი, ისევე, სიტყვა NSString.
>> თუმცა, იმისათვის, რომ გამოიყენოთ ეს მეთოდები, თქვენ ნამდვილად
უნდა შევქმნათ string.
მაგალითად, NSString star string შეადგენს at ბრჭყალებით, hello მსოფლიოში.
და შემდეგ, თქვენ შეგიძლიათ გამოიყენოთ ეს მეთოდები -
მაგალითად მეთოდები -
რომ Hello World string.
ასე რომ, სხვაობა მაგალითად, მეთოდები და კლასი მეთოდები.
>> და, ჩვენ უბრალოდ დაფარული ამ ნაწილში.
თვისებები კიდევ ერთი რამ, რომ შიგნით ობიექტების, ძირითადად.
და აცხადებენ, მათ at ქონების სიტყვით.
თქვენ გაქვთ ეს პარამეტრები, აქ, რომ მე ახსნას მოგვიანებით, როცა
ჩვენ წასვლას დემო.
დიახ?
Hi.
>> აუდიტორია: იქნებ მიუახლოვდით, გთხოვთ?
>> RHED SHI: ჰო.
უკაცრავად.
>> აუდიტორია: დიდი მადლობა.
>> RHED SHI: ეს უნდა იყოს უკეთესი.
>> აუდიტორია: Yeah.
დიდი მადლობა.
>> RHED SHI: Yeah, გთხოვთ მაგონებს, თუ I დაგავიწყდეთ მასშტაბის გასაზრდელად ან დააშორებს.
ასე რომ, ეს ყველაფერი მინდოდა რათა ნახოთ თქვენ -
Whoa, რომ ბევრი -
ამ ნახვა.
ასე რომ, მოდით დავუბრუნდეთ სლაიდები.
>> რეალურად, ახლა მოდით მიიღოს მომენტში ჩაყვინთვის შევიდა დემო.
ასე რომ, დავიწყოთ ახალი Xcode პროექტი.
ასე რომ, თუ თქვენ გახსნას Xcode ყველა თქვენი მანქანები, ეს უნდა თქვენ გარკვეული
გვერდი, სადაც იგი აცხადებს, ისევე, როგორც ღია up არსებული პროექტი ან ახალი
პროექტი, და თქვენ უნდა დაწკაპეთ ახალი პროექტი.
და შემდეგ, მან უნდა აიღოს თქვენ ამ ეკრანზე.
დიახ?
>> აუდიტორია: თუ ჩვენ არ აქვს Mac, ჩვენ უბრალოდ სახის chill?
>> RHED SHI: ან გამორჩა ვინმე, yeah.
ჰო.
თქვენ შეგიძლიათ chill, ძალიან.
OK.
>> ასე რომ, რასაც ჩვენ ვაპირებთ გავაკეთოთ პირველი, ახლა, არის, ფაქტობრივად, ჩვენ ვაპირებთ, რომ გავაკეთოთ
ერთი ხედი განაცხადის.
ასე რომ, თუ თქვენ შეამჩნევთ, რა დიდი შესახებ Xcode და Apple მხარდაჭერა
დეველოპერები, რომ თქვენ გაქვთ ბევრი თარგები მუშაობა უკვე.
თქვენ შეიძლება, მაგალითად, მიიღოს საძიებო დეტალურად განაცხადი.
შეგიძლიათ თამაში -
და რეალურად, მე არ შევალ თამაშები, იმის გამო, რომ თამაშები სხვადასხვა ამბავი
for iOS განვითარებას.
და ისინი სახის გამოყოფა, ასე რომ მე არ შევალ, რომ.
>> მაშინ, თქვენ არ გვერდი დაფუძნებული პროგრამები.
თქვენ გაქვთ tab განაცხადი -
ასე რომ, მინდა, მაგალითად, Bank of America ალბათ, ისევე, tabbed app.
ეს პირობა, სადაც თქვენ უნდა ღილაკები ბოლოში.
და შემდეგ, თქვენ გაქვთ Sprite Kit თამაში.
>> ან თქვენ შეგიძლიათ იმუშაოთ ნულიდან, რომელიც არის ის, რასაც ჩვენ გავაკეთებთ მოგვიანებით.
მაგრამ მოდით, პირველ რიგში, იწყება ერთი ხედი განაცხადის.
ამის შემდეგ, იგი ყველაფერს ითხოვენ პროდუქტის სახელი, და ჩვენ შეგვიძლია უბრალოდ ტესტი.
ორგანიზაციის დასახელება -
ასე რომ, ორგანიზაციის დასახელება, კომპანია იდენტიფიკატორი -
ეს მნიშვნელოვანია, თუ თქვენ აპირებს დააყენოს თქვენი app on App Store.
გარდა ამისა, თქვენი კოდი აპირებს აწარმოებს აბსოლუტურად ჯარიმა გარეშე.
>> ეს იქნება მნიშვნელოვანი, თუ მინდა - ასე რომ, თავისთავად, ისევე, თქვენს app
onto თქვენი ტელეფონი ან რამე, და ტესტი ის, რომ თქვენ იცით, რეალურ ცხოვრებაში -
ეს იქნება მნიშვნელოვანი.
ეს ტენდენცია, როგორც წესი, ასოცირდება გარკვეული დეველოპერი ანგარიში
Apple.
>> ასე რომ, მე ვიცი, ალბათ, ბევრი თქვენგანი არ ექნება დეველოპერი ანგარიშები.
მე ვიცი, რომ უნივერსიტეტს გააჩნია ერთი.
მე ვფიქრობ, რომ CS ერთი.
მაგრამ, თქვენ მომაწოდეთ და ვეცდები გაერკვნენ, რომ თქვენ.
მაგრამ ახლა, მე უბრალოდ დასვა ზოგიერთი placeholder რამ აქ.
>> და შეგიძლიათ, რა თქმა უნდა, აქ, აირჩიოს თუ გსურთ, რომ იყოს მხოლოდ
iPhone, iPad in, ან ორივე ერთად -
უნივერსალური პროგრამა.
ასე რომ, ახლა, მოდით უნივერსალური, უბრალოდ ვხედავ ორივე მხარეს პლატფორმა.
>> ვნახოთ.
ასე რომ, ახლა, მე ვაპირებ გადარჩენა იგი გარკვეული საქაღალდეში.
არ აქვს მნიშვნელობა, სადაც - თქვენ ყოველთვის შეგიძლიათ გადაადგილება იგი მოგვიანებით.
და, ახლა, ჩვენ მოუტანა ჩვენს Xcode პროექტი.
მე არ აღელვებს ეს ყველაფერი.
მინდა ვარაუდობენ არ ეხება რაიმე ამ, თუ თქვენ იცით ზუსტად რა
თქვენ აკეთებთ.
ასე რომ, ყველა ამ, უბრალოდ იგნორირება ყველაზე ნაწილი.
თქვენ არ უნდა შეეხოთ მას, და თუ თქვენ mess up ზოგიერთი რამ აქ,
იღებს პატარა სახიფათო.
>> ასე რომ, რატომ არ გადავხედავთ ფაილი
მარცხენა მხარეს ჩვენი ნავიგატორი.
აქ, ჩვენ გვაქვს AppDelegate.h.
ჩვენ AppDelegate.m ასე რომ, როგორც თქვენ ცნობა, ჩვენ header ფაილი, რომელიც
დასრულდება dot h, და ჩვენ განხორციელება -
ფაქტობრივად, ნება მომეცით zoom სისტემაში
OK.
ნება მომეცით zoom სისტემაში
>> უფლება, ასე რომ თქვენ არ header ფაილი და თქვენ გაქვთ განხორციელების ფაილი.
რეალურად -
OK.
ეს არის პატარა უცნაური, მაგრამ აგებს ჩემთან ერთად.
მაშინ, იმიტომ, რომ ჩვენ მიერ არჩეული ერთ კალენდარი განაცხადი, ჩვენ ვაპირებთ, რომ იყოს
მუშაობის storyboard.
>> ასე რომ, storyboard არის ის, რომ Apple დადგა ერთად ნამდვილად დაეხმარება
დეველოპერები სწრაფად პროტოტიპი მათი პროგრამა.
ასე რომ, ეს არის, სადაც თქვენ შეგიძლიათ შექმნათ app გარეშე წერა
ერთი ხაზი კოდი.
თუმცა, ჩვენი ერთ კალენდარი განაცხადს, ჩვენ არ, რა თქმა უნდა, აქვს
ფაილი ჩვენი აზრით, რომელიც არის მოსაზრება, კონტროლერი.
ასე რომ, ჩვენ ზედა და შესრულების ფაილი აქ.
>> და მე ვაპირებ დააშორებს, რადგან ჩვენ გვჭირდება მუშაობა storyboard.
ასე რომ, აქ ჩვენი აზრით.
თუ ჩვენ, უბრალოდ, აწარმოებს app ახლა, იქ არ არის ბევრი საინტერესო ხდება.
ასე რომ, თქვენ ნახავთ ამ თეთრ ეკრანზე.
OK?
>> და, ჩვენი კომუნალური ტერიტორია, ჩვენ შეგვიძლია დავამატოთ bunch სხვადასხვა რამ არის.
ასე რომ, როდესაც თქვენ საქმე ეკრანები in iOS, ხედი კონტროლერები არიან
ობიექტები, რომ encapsulate, სახის, თქვენი შეხედულებები.
ასე რომ, ხედი კონტროლერი ყოველთვის აქვს ქონება მოუწოდა ხედი.
და რომ ხედი, როგორც წესი, შეიცავს, თქვენ იცით, თუ რა
გვინდა, რომ ეკრანზე.
>> ასე რომ, კარგად, მოდით უბრალოდ დავიწყოთ იმით, ალბათ, იქნებ იარლიყი.
ასე რომ, მოდით დააყენა ეტიკეტების არსებობს -
გამყარებაში მას ცენტრიდან.
ასე რომ, ახლა რომ მე დაწკაპავთ ეტიკეტების, I შეგიძლიათ შეხვიდეთ თვისებები ინსპექტორი
და დაიწყოს იცვლება მისი ღირებულება.
მოდით ეძახით CS50 Colours.
>> და მე ასევე შეგიძლიათ შეცვალოთ შრიფტი.
ასე რომ, ნაცვლად აკეთებს სისტემა, რომელიც რა, ჩვენ შეგვიძლია გავაკეთოთ საბაჟო ერთი.
ჩვენ შეგვიძლია შევცვალოთ -
თქვენ იცით, Ultralight, რათა ის 32.
და შემდეგ, ჩვენ შეგვიძლია ჩვენი ყუთი დიდია.
>> აუდიტორია: როგორ ფიქრობთ, თქვენ შეგიძლიათ გაადიდოთ რაღაც ცოტა მეტი, იქნებ?
>> RHED SHI: ჰო?
OK.
>> აუდიტორია: Just Tap ეს?
>> RHED SHI ვნახოთ.
მუშაობს ეს?
>> აუდიტორია: Just გაივლის Xcode?
>> RHED SHI: რა თქმა უნდა.
OK.
გასაოცარია.
>> აუდიტორია: ეტიკეტების ქვეშ?
ეტიკეტების?
>> RHED SHI: რა არის ეს?
>> აუდიტორია: რა ჩამოსაშლელი იყო label ქვეშ?
>> RHED SHI: ასე რომ, კითხვა იყო, თუ რა ჩამოსაშლელი იყო label ქვეშ?
ეს უნდა, უბრალოდ, დაექვემდებარება აქ.
ვფიქრობ, ეს კუბი რამ.
მაგრამ, როგორც წესი, ეს არის default -
მე უბრალოდ აპირებს ქვემოთ აქ სანამ მე იარლიყი.
ჰო.
>> ახლა, ჩვენ გვაქვს ჩვენი იარლიყი.
მოდით ცენტრში მას.
და Xcode გვაძლევს guidelines განთავსების centering ობიექტები.
ასე რომ, ახლა მოდით აწარმოებს ჩვენი კოდი, კიდევ ერთხელ.
>> იქ ჩვენ წავიდეთ.
ასე რომ, ჩვენ CS50 Colours.
და ახლა, მოდით დააყენა ღილაკს იქ, არა?
იმის გამო, რომ ჩვენ გვსურს ამ ინტერაქტიული.
ასე რომ, მოდით დააყენა ღილაკს აქ.
და ჩვენ მოვუწოდებთ ამ ღილაკს "ჩამოსასხმელი აქ გაგრძელება. "ჩვენ ცენტრში, ასევე
სინამდვილეში, ის უკვე ორიენტირებული.
ჰო.
>> ასე რომ, ახლა ჩვენ ღილაკს.
და თუ ჩვენ აწარმოებს ეს კიდევ ერთხელ, ჩვენ ვაპირებთ აქვს ლამაზი პატარა ღილაკი აქ.
და შემიძლია დააჭირეთ მას, მაგრამ იგი ამას არ გააკეთებს არაფერს, რადგან ჩვენ არ კეთდება
არაფერი ღილაკს არავის გაუკეთებია.
>> ასე რომ, მოდით შევქმნათ კიდევ ერთი ხედი, არა?
ასე რომ, ვთქვათ, მინდა ჩამოსასხმელი რომ ღილაკს და მინდა
გადადით სხვა გვერდზე -
კიდევ ერთი ხედი.
რა მე ვაპირებ ამის გაკეთებას, მე შეგიძლიათ შექმნათ კალენდარი კონტროლერი, არა?
ახლა მე დააკლიკეთ ჩემი ღილაკს და შემდეგ, მთავარია, მე ვაპირებ
დააჭირეთ - ან -
დიახ, დააჭირეთ კონტროლის ჩემს კლავიატურაზე.
კონტროლი.
დააჭირეთ ღილაკს და შემდეგ გადაიტანეთ.
>> ასე რომ, გახსოვდეთ გამართავს კონტროლის გასაღები.
მოდით, რომ ერთხელ.
ასე რომ, გამართავს კონტროლი, დააწკაპუნეთ და გადაათრიეთ რა გსურთ.
OK.
>> და ახლა, მე მაქვს რამდენიმე ვარიანტი აქ.
მე შეგიძლიათ დააყენებს, ან შემიძლია მოდალური, ან შემიძლია საბაჟო.
Push მხოლოდ თუ აქვს ნავიგაცია კონტროლერი.
ახლა, ჩვენი პირველი კალენდარი კონტროლერი არ არის შიგნით ნებისმიერი
ნავიგაცია კონტროლერი.
ასე რომ, ნავიგაცია კონტროლერი არის ერთი რომ გაძლევთ back ღილაკს
iOS app, სადაც თქვენ იცით, რომ ყველაზე, სახის, სქელი ბარი -
სადაც შეგიძლიათ დაბრუნდეს, ან ველით, et cetera.
ახლა, მე არ მაქვს, რომ.
და ასე შემდეგ, ამიტომ არ შემიძლია ბიძგი.
>> ასე რომ, მე დაწკაპავთ ბიძგი შემთხვევით აქ.
და რეალურად, მოდით აწარმოებს კოდი, და ეს უნდა ავარიული ჩემზე.
მხოლოდ იმ შემთხვევაში, მე დააჭირეთ ღილაკს თუმცა, ასე -
უფლება.
ასე რომ, ეს არის ცუდი.
>> და, როგორც ხედავთ, აქ, ჩვენ აქვს შეცდომა.
ასე რომ, "Push segues შეიძლება გამოყენებულ იქნეს მხოლოდ მაშინ, როდესაც წყარო კონტროლერი მართავს
მაგალითად UI ნავიგაცია კონტროლერი. " ასე რომ, იმიტომ, რომ ეს არ იყო შიგნით
ნავიგაცია კონტროლერი, მე ვერ გავაკეთოთ, რომ.
>> ასე რომ, ახლა, მე ვაპირებ უკან საქაღალდე, ბრუნდება storyboard.
>> აუდიტორია: რა ნავიგაცია კონტროლერი, ისევ?
>> RHED SHI: ასე რომ, ახლა მე შენ გაჩვენებ.
ვნახოთ.
ასე რომ, მე ვაპირებ დააჭირეთ ამ თვალსაზრისით კონტროლერი, და შემდეგ მე ვაპირებ წასვლა
მდე პროდუქტი -
რეალურად, არა, უკაცრავად - რედაქტორი.
და მე ვაპირებ წასვლას -
რეალურად, მე დაწკაპეთ იგი?
პოსტები
იქ ჩვენ წავიდეთ.
მე ვაპირებ წასვლა up შევიდა რედაქტორი, დაცემას ხმა, და შემდეგ ნავიგაცია
კონტროლერი.
>> OK.
და, ჩემი სამუშაო გამოიყურება ნამდვილად რთული, მოდით გაწმენდა ამ up.
ასე რომ, ყველა ამ storyboard.
და ამ გზით -
OK, შეჩერება -
შემიძლია სწრაფად ავაშენოთ რამე მოსწონს ეს.
და შემდეგ, ახლა შემიძლია დავუბრუნდეთ, თქვენ იცით?
>> მაგრამ ეს არის ერთგვარი მოსაწყენი, არა?
ასე რომ, რაც მე მინდა ამის გაკეთება, მე არ მინდა, რათა, უბრალოდ, ხედი
კონტროლერი.
ვთქვათ მინდოდა რეალურად მიიღოს ცხრილის კონტროლერი, ასე რომ შეგიძლიათ განათავსოთ
ზოგიერთი ლამაზი ფერები, ცხრილში.
>> ასე რომ, ახლა რომ მე დააყენა ჩემი ცხრილის კონტროლერი, მე უნდა დააკავშირებს უკან
ამ ღილაკს კალენდარი კონტროლერი.
ასე რომ, მე უნდა გავაკეთებ კონტროლი, click, drag რამ ერთხელ.
და ახლა შემიძლია ბიძგი, იმიტომ, რომ მე ხმა ის შიგნით ნავიგაცია კონტროლერი.
>> აუდიტორია: Navigation controller მხოლოდ საშუალებას გაძლევთ წავიდეთ ადგილზე?
>> RHED SHI: დიახ.
ასე რომ, უფრო ტექნიკურად, ეს ობიექტი, სადაც -
ასე რომ, შიგნით ნავიგაცია კონტროლერი ობიექტი,
ინახავს ტრეკზე მასივი.
და რომ მასივი ფლობს ყველა შემდგომი ნახოთ კონტროლერები.
ამიტომ, როდესაც თქვენ დააჭირეთ დაბრუნება, ის მიდის უკან წინა გვერდზე.
იმის გამო, ნავიგაცია კონტროლერი ობიექტი, ან კოდი, რომელიც ზრუნავს
ეს ობიექტი, აქვს მასივი, რომელიც ინარჩუნებს აკონტროლოთ ეს კალენდარი კონტროლერები და
შეიძლება მაშინ, თქვენ იცით, DQ კალენდარი კონტროლერი და მოგცემთ უკან
წინა.
>> ასე რომ, ეს არის ტექნიკური პერსონალი, მაგრამ -
და მე შენ გაჩვენებ შემდეგ კოდი, თუ ჩვენ გვაქვს დრო.
მე სახის გაშვებული გარეთ დრო, მაგრამ -
>> ასე რომ, მაგიდასთან აზრით, რა შეგვიძლია გავაკეთოთ არის -
ეს, როგორც წესი ავტომატურად მითითებული დინამიური Prototype -
ჩვენ ვაპირებთ, რათა ის Static საკნები, წინააღმდეგ შემთხვევაში, ჩვენ ვაპირებთ
გადაეყარონ გარკვეული პრობლემები.
>> და მაშინ, ვთქვათ, მე ვაპირებ აქვს ერთი განყოფილება.
ასე რომ, სექციები ჰგავს -
თუ თქვენ ოდესმე მინახავს მუსიკა app, როდესაც თქვენ უნდა მხატვრების, სექციები იქნებოდა
იყოს მისი მეშვეობით Z's -
წერილები -
და მაშინ თქვენ იცით, ინდივიდუალური რიგები იქნება მხატვრის სახელები.
ასე რომ, რა მაგარი აქ, არის ის, რომ მე არ შემიძლია წვდომის ყველა ობიექტების შიგნით
ჩემი storyboard მეშვეობით ჩამოსაშლელი მენიუ, ძალიან.
>> ასე რომ, მე ვაპირებ დააკლიკეთ ჩემი განყოფილებიანი, და მე მინდა, თქვენ იცით, იქნებ ხუთი რიგები.
და მაშინ, შიგნით თითოეული ზედიზედ, მინდა დააყენა იარლიყი.
და მე ვაპირებ მოვუწოდო ამ ლურჯი.
და შემდეგ, მე მინდა დააყენოს UI აზრით, თქვენ ვიცი, იქნებ, ისევე, პატარა ყუთში.
>> ასე რომ, მე შემიძლია ადამიანი ესკიზი ფერი.
და მე დაბრუნდეს ქონება და შეიცვალოს, რომ ფერი, oh, მე არ
ვიცი, ეს ერთი.
>> და შემდეგ შეამჩნევთ, ასევე, აქ, როდესაც მე მაქვს აქსესუარები, შემიძლია ბევრი
სხვადასხვა აქსესუარები რომ თქვენ, როგორც წესი, ვხედავთ.
გამჟღავნება მაჩვენებელი, დეტალურად, ან შეამოწმეთ გასვლის შემდეგ, ან უბრალოდ უბრალოდ დეტალურად.
ასე რომ, შესაძლოა, ჩვენ შეგვიძლია ამის გაკეთება, ისევე, გამჟღავნების მაჩვენებელი, მაგალითად.
>> და მაშინ, რატომ არ ვიღებთ ამ, ასლი ჩასვით მათ, და ამით მათ
მომდევნო გრაფაში.
ასე რომ, ჩვენ შეიძლება მოვუწოდებთ ამ ყვითელი.
და მე ალბათ უნდა გააგრძელოს ეს.
მოდით ეს ყვითელი.
და ამ გზით, ჩვენ შეგვიძლია კოპირება ჩასვით ჩვენი გზა down.
რა იყო ეს?
Purple.
>> ასე რომ, ეს არის ყველა ტიპიური CS50 ფერები, რომ თქვენ ვნახე კლასის -
ფაქტობრივად, ბოდიში -
ან ნახვა.
იმედია ბიჭებს ვხედავ, რასაც მე ვაკეთებ აქ.
OK.
ბოლო ერთი.
>> აუდიტორია: როგორ თქვენ დაამატებთ ზედიზედ თავდაპირველად?
>> RHED SHI: ასე რომ, კითხვა იყო, როგორ მე დაამატოთ row თავდაპირველად?
მე შევიდა ამ მაგიდასთან სექცია - ან თუმცა შემიძლია
აირჩიეთ მაგიდა სექცია -
და შემდეგ, აქ, მე განახლება სტრიქონების რაოდენობა.
>> და ნება მიბოძეთ, იმედი მაქვს, რომ ეს სამუშაოები.
OK.
ვნახოთ, თუ ეს სამუშაოები.
Oh, სრულყოფილი, გასაოცარია.
OK.
ხოლო მე მშენებლობაზე ჩემი დემო, ზოგიერთი რამ არ შეესაბამება, ასე რომ, მადლობა
ტაში.
>> ჰო.
ასე რომ, ვნახოთ.
ჩვენ, რომ ეს ცხრა მხოლოდ იმისათვის, ყველაფერი - ან რეალურად, მოდით უბრალოდ
ყველაფერი ეს თარგმნეს გამჟღავნება მაჩვენებლები.
და შემდეგ, რა მინდა გაჩვენოთ, ძალიან, იყო, თუ როგორ მე შეუძლია მიიღოს თითოეული იმ
მაგიდა რიგები და მათ ურთიერთქმედება -
oh.
პოსტები
>> Oh.
გარდა ამისა, მე მინდა გაჩვენოთ -
აქ, შემიძლია დააყენა ტიტული ჩემი ნავიგაცია კონტროლერი, არა?
ასე რომ, რეალურად, თქვენ შეამჩნევთ, როგორც კი ჩართული ამ თვალსაზრისით კონტროლერი შიგნით
ნავიგაციის კონტროლერი, ჩვენ ვხედავთ ამ ნავიგაციის პანელის ზედა ჩვენი
storyboard წარმომადგენლობა საქართველოს კალენდარი კონტროლერი.
ასე რომ, ეს გვაძლევს, ისევე, ვიზუალური, სახის, გიდის ჩვენს ჩანს ეკრანზე.
ეს აშკარად აპირებს იყოს ნავიგაციის ბარი.
>> და რა მინდა სწრაფად, ახლა, დააყენა მეორე -
ასე რომ ამ ცხრილის კონტროლერი გავაკეთე მიერ აღების ერთი ამ და გადმოიყვანა იგი
აქ, და რომ ის, რაც საშუალება მომცა სწრაფად, მართლაც, შევქმნათ ცხრილი კალენდარი
კონტროლერი.
თუ ჩვენ გვაქვს დრო, თუმცა, თქვენ ვხედავთ, რომ პროგრამულად, ეს
ცოტა უფრო სახიფათო შევქმნათ ცხრილი კალენდარი კონტროლერი, იმიტომ, რომ იქ
რამდენიმე მეთოდები, რომლებიც აუცილებელია, რომ თქვენ, სახის, წერენ
იმისათვის, რომ ცხრილის კონტროლერი უნდა აისახოს სწორად.
>> თუმცა, მინდა გაჩვენოთ, ახლა, მაგალითი, სადაც, თუ მე ამ,
მაგალითად -
მე დააყენა მეორე კალენდარი კონტროლერი.
და ახლა, ვთქვათ, მინდა კონტროლი alt ჩემი პირველი ლურჯი
გრაფაში აქ.
და მე მინდა, რომ მოვუწოდო ამ ლურჯი.
ხოლო შემდეგ -
ვნახოთ.
მე იმ აზრით, ახლა, და მე შეიძლება შეიცვალოს ფონზე ლურჯი ფერით.
>> ასე რომ, ცნობა, აქ, ამ ჩამოსაშლელი მენიუს ასევე გაძლევთ იერარქიის ყველა
ამ ობიექტების.
ასე რომ, მნიშვნელოვანი რამ აღვნიშნო, რომ აქ, ის არის, რომ ყველა ამ საკითხზე, აქ -
ამ ცხრილის კონტროლერი, მაგიდა აზრით, ცხრილის განყოფილებიანი, ცხრილის
საკანში - ყველა მათგანი ობიექტების, კოდი.
ასე რომ, თქვენ იცით, ეტიკეტების ახლა მზადების შინაარსი აზრით, et cetera.
ა.შ. და ა.შ..
>> ასე რომ, თუ ჩვენ აწარმოებს ამ კოდი, ჩვენ უნდა დაინახოს რაღაც -
ვნახოთ, თუ ეს - yeah.
ასე, რომ ჩვენ მივდივართ.
მაგრამ, თუ ჩვენ არ გავაკეთებთ, რომ არცერთი ამ სხვა რამ მუშაობა.
უფლება?
ასე რომ, მხოლოდ ამ ერთი მუშაობს.
და, გულისთვის, მე არ წასვლას, თქვენ იცით, აყენებს
ქვემოთ სხვა.
და ეს არის ბოლომდე, სახის, storyboard -
რა მინდოდა ნახოთ თქვენ storyboard.
>> და, მე აქვს შემუშავებული, მაგალითად, რეალურად, უფლება აქ.
ასე რომ, ეს არის storyboard რომ მე ადრე.
ასე რომ, როგორც ხედავთ, ეს იყო ჩემი ნავიგაცია კონტროლერი.
მაშინ მე მქონდა ჩემი პირველი კალენდარი კონტროლერი, მაშინ მქონდა ცხრილის კონტროლერი,
და შემდეგ მე მქონდა ეს ყველაფერი -
ასე რომ, ადრე, მე აკეთებდა რაღაც ძალიან განსხვავებული.
ასე რომ, ამართლებს იმ რამ.
მე ალბათ გაწმენდა it up მოგვიანებით ადრე I გააგზავნეთ off წარმოების.
>> მაგრამ, თუ ჩვენ აწარმოებს ამ, ჩვენ დავინახავთ რომ ყველა ვარიანტები
ჩვენს ხელთ არსებული.
გარდა მე არ მიიღოს ფონზე იმ ფერები.
ასე რომ, ლამაზი მარტივი პროგრამა.
>> ახლა, მოდით ვცდილობთ მოვაგვაროთ ამ პროგრამულად.
OK.
ასე რომ, ამის გაკეთება, ჩვენ უბრალოდ აპირებს უნდა დაიწყოს ახალი Xcode პროექტი.
ჩვენ, რომ ეს ცარიელი განცხადება ახლა, იმიტომ, რომ ჩვენ არ გვინდა, რომ აქვს
storyboard.
ასე რომ, მე უბრალოდ ზღუდავს თავს არ გამოიყენოთ რომელიმე storyboard და
ცარიელი განაცხადი არ მომეცი storyboard.
ეს არის თავიდან ასაცილებლად თავს მოტყუების.
ვნახოთ.
დაველოდოთ.
მე -
დიახ.
OK.
>> უფლება.
ასე რომ, აქ, ჩვენ მარცხენა არაფერია, თუ არა კოდი.
ასე რომ, ნება მომეცით გადავიდეს ამ window ოდნავ მეტი.
უფლება.
როგორც ხედავთ აქ, მხოლოდ ფაილი ჩვენ მოცემული არიან AppDelegate.h და dot
მ, და ჩვენ არ გვაქვს storyboard უქმნით.
>> ასე რომ, თუ ჩვენ აწარმოებს ამ, ჩვენ კვლავ აპირებს მიიღოს თეთრ ეკრანზე, მადლობა ღმერთს.
OK - თეთრი ეკრანზე, მაგრამ არაფერი.
და, აქ არის მნიშვნელოვანი ნაწილი.
ეს არის სადაც მოქმედება ხდება.
წინა ვერსიით, არსებობს როგორც წესი, არ კოდი აქ, მაგრამ
storyboard არსებითად უზრუნველყოფს კოდი ამ ნაწილში.
მე არ წასვლას დეტალები, თუ როგორ.
>> და რა გვინდა ახლა, ჩვენ გვინდა წავიდეთ აქ და ეს პატარა სივრცე
იწყება შექმნაში ჩვენი app ერთხელ.
ასე რომ, -
დიახ?
>> აუდიტორია: Zoom?
>> RHED SHI: Zoom.
ჰო, რა თქმა უნდა.
OK.
მე აკრეფით, ასე რომ ეს არ უნდა ამ საკითხზე ძალიან ბევრი.
OK.
>> ასე რომ, პირველი, გვახსოვდეს, გვინდოდა, რომ შევქმნათ ნავიგაცია კონტროლერი, არა?
და ასევე, როგორც ხედავთ აქ, Xcode აკეთებს მართლაც დიდი სამუშაო
თვითმმართველობის შევსება.
ასე რომ, როგორც თქვენ შეამჩნევთ, სახელები ყველაფერი ბევრი უფრო მეტია, ვიდრე
ყოველთვის, მაგრამ Xcode ავსებს მას თქვენთვის.
ასე, რომ შეიძლება უბრალოდ დააჭირეთ Enter-ს.
>> ასე რომ, მინდა, რომ შევქმნათ UI ნავიგაცია კონტროლერი მაჩვენებელი, და შემიძლია ეძახით
navigationController.
ახლა, რა გავაკეთო ახლა?
ამის შემდეგ თანაბარი ნიშანი, მე უნდა, პირველ რიგში, შექმნა შიგნით მეხსიერება.
ასე რომ, მე ვაპირებ ამის გაკეთებას NavigationController alloc -
ასე რომ, ეს არის მსგავსი malloc, რომ თქვენ ბიჭები გამოიყენება C -
და შემდეგ, მე ვაპირებ, რომ init იგი.
>> ასე რომ, ეს მართლაც მნიშვნელოვანია, რომ ნებისმიერი ობიექტი, რომელიც თქვენ გსურთ
alloc და init იგი.
რომ აპირებს შექმნას და instantialize შიგნით მეხსიერება, და
ახლა თქვენ შეგიძლიათ გამოიყენოთ იგი.
ყველა უფლება?
თუ თქვენ არ გავაკეთოთ, რომ თქვენი ობიექტის აკეთებს არ არსებობს, და თქვენ გადაეყარონ bunch
პრობლემები.
>> და შემდეგ, მე მინდა, რომ შევქმნათ კალენდარი კონტროლერი, არა?
ასე რომ, მინდა, რომ შევქმნათ UIViewController star -
ასე რომ, ყველაფერი არის მაჩვენებელი Objective-C, და მე ვაპირებ ამის გაკეთებას
რაღაც მსგავსი, აქ -
alloc, init.
OK.
>> და მერე რა მე ვაპირებ ამის გაკეთებას, მე ვარ აპირებს, - ასე, გახსოვთ, როდესაც ჩვენ გავაკეთეთ
embed in ნავიგაცია კონტროლერი?
ეს არის, თუ როგორ გავაკეთოთ ეს კოდი.
თქვენ ვაპირებთ navigationController
pushViewController -
>> აუდიტორია: [INAUDIBLE].
მოხდება ეს ჩვენთვის, ან -?
>> RHED SHI: Oh, yeah.
პოსტები
მას მოსწონს ჩემთვის უკეთესი.
არა, ეს ვიმუშავებთ თქვენთვის, ძალიან.
ასე რომ, ეს არის ყველა მეთოდები.
ასე pushViewController არის მეთოდი და ასევე, უფრო კონკრეტულად, ეს
მაგალითად მეთოდი UI ნავიგაცია კონტროლერი.
იმის გამო, რომ მე უნდა შეიქმნას ჩემი UI ნავიგაცია კონტროლერი ვარსკვლავი, და მერე
შეგიძლიათ დარეკოთ ამ pushViewController ჩემი კონკრეტული მაგალითი UI ნავიგაცია
კონტროლერი.
>> აუდიტორია: არ გვაქვს ზუსტი სიტყვა, ან იგი უკვე არსებობს იგი?
>> RHED SHI: დიახ, იმიტომ, რომ ეს მეთოდი.
ეს მოსწონს ფუნქცია.
ეს მოსწონს printf.
ის მსგავსად scanf.
ეს იგივეა strcompare.
იმის გარდა რომ იცის, რა დაგვჭირდება ტიპის, და შეამჩნია, რომ ყოველთვის გექნებათ
ამუშავება რამ არის ლეგალურად თქვენთვის.
ასე რომ, თუ არაფერი ჩანს, აქ, შემდეგ რაღაც არასწორია.
>> ასე რომ, pushViewController.
ასე რომ, ახლა, მინდა დააყენებს ჩემი ახლად შექმნილი
UIViewController და შემდეგ, ანიმაციური -
ალბათ, არა.
იმიტომ, რომ ეს იქნება პირველი კალენდარი კონტროლერი.
ვგულისხმობ, მაშინაც კი, თუ მე არ მიიღოს ანიმაციური, ეს, ალბათ, არ გამოჩნდება, რადგან
ეს პირველი ეკრანზე.
>> და მახსოვს ფრჩხილებში.
ასე რომ, მახსოვს, როგორ ჩვენ ფრჩხილებში?
და შიგნით ფრჩხილებში, ობიექტის მოუწოდებს მეთოდი -
ამიტომ ჩვენი მიზანია ნავიგაცია კონტროლერი, და მეთოდი ბიძგი
კალენდარი კონტროლერი ანიმაციური.
და ვნახოთ, როგორ იღებს ორ არგუმენტს, და ისინი გამოყოფილი, სახის,
სიტყვა და მსხვილი ნაწლავის.
ასე რომ, Objective-C ცდილობს, რათა ის ლამაზი და ადვილად წაიკითხოთ ხმამაღლა -
თქვენი კოდი - და ეს ნახევრად, სახის, აზრი.
>> თუმცა, აკეთებს მხოლოდ ამ არ არის საკმარისი.
ნება მომეცით დააშორებს ახლა.
აკეთებს მხოლოდ ეს არ არის საკმარისი იმისათვის, რომ კიდევ რა მივიღეთ ადრე.
ასე რომ, აქ, თქვენ შეამჩნევთ, რომ არსებობს რეალურად არ იქნება რაიმე სახის
ბარი, აქ, არა?
არ არსებობს ნავიგაციის პანელი, რაც იმას ნიშნავს, რომ ჩვენ ჯერ კიდევ არ მიღებული იგი.
>> და ჩვენ შეგიძლიათ შეამოწმოთ, რომ, ასევე, ალბათ, შეცვლის ფონზე
ViewController, არა?
ViewController.background--
ah.
ასე რომ, ვნახოთ, როგორ ViewController არ აქვს ფონის ფერი, მიუხედავად იმისა, რომ
სასურველი ვებგვერდზე?
და ეს იმიტომ, რომ ViewController არის კონტეინერი ხედი.
ასე რომ, მას აქვს კალენდარი ქონება, რომელიც მაშინ აქვს ფონის ფერი.
>> და, შემიძლია მითითებული ეს, ერთგვარი tediously, დარეკვით ფერი
წლის UIColor ობიექტი.
ასე რომ, გაფრთხილების აქ, redColor მეთოდი.
ეს კლასი მეთოდი UIcolor.
იმიტომ, რომ მე არ უნდა შევქმნათ ფაქტობრივი მაგალითად UIColor მიზნით
მოვუწოდებთ საშუალებას მასზე.
უბრალოდ, უბრალოდ, მას ტიპის მსგავსი სახელი.
მე, ისევე, მოუწოდა მას int, int, თუ ჰქონდა, ისევე, როგორც, მეთოდი კი, მაგალითად.
>> ასე რომ, თუ ჩვენ აწარმოებს ამ კოდი, ჩვენ შეამჩნევთ, რომ ფონზე
რეალურად არ არის წითელი.
მაინც თეთრი.
და როგორ შეგვიძლია მისაღებად გარშემო რომ არის, შეამჩნევთ, თუ როგორ არსებობს self.window.
რომ არის, ისევე, საბოლოო კონტეინერი თქვენი განაცხადი.
ეს არის საბოლოო, რაც შეიცავს ყველაფერი ეკრანზე,
iPhone ან iPad პროგრამა.
>> და მოხერხებულად, self.window აქვს ამ ქონების მოუწოდა
rootViewController.
და რომ იქნება მომცეთ პირველივე კალენდარი კონტროლერი შიგნით
თქვენი app.
ასე რომ, რა გვინდა აქ, ახლა, მითითებული, რომ თანაბარი ჩვენს ნავიგაცია
კონტროლერი.
უფლება?
იმის გამო, რომ ტექნიკურად, ნავიგაცია კონტროლერი არის ჩვენი პირველი კალენდარი
კონტროლერი.
იგი ინახავს ტრეკზე მასივი სხვა კონტროლერები და ჩვენ მივიღებთ ამ
კალენდარი კონტროლერი შევიდა, რომ მასივი ნავიგაციის კონტროლერი.
>> ასე რომ, თქვენ არ გსურთ ამის გაკეთება.
რომ არ ნამდვილად დაგეხმარებათ.
გსურთ, თუ თქვენ სურდა ამის გაკეთება ნავიგაცია კონტროლერი, რომელიც საუკეთესო
თქვენ, ალბათ, იმიტომ, რომ თქვენ გსურთ რომ, სახის, აქვს გარკვეული,
როგორიცაა, მენიუში უნდა დაბრუნდეს ან რამდენიმე გვერდი დაბრუნდეს, ვიდრე
ცარიელი ეკრანზე.
დიახ?
>> აუდიტორია: ეს არასასიამოვნო თქვენ მიუახლოვდით -
>> RHED SHI: ჰო.
ასე რომ, yeah.
ეს არის კოდი, და ახლა მოდით შეამოწმოთ ის.
>> ასე, რომ ჩვენ მივდივართ.
Magic.
ასე რომ, OK.
დიდი მადლობა.
OK.
ახლა, ის, რაც ჩვენ გვსურს რომ არის - ასე, ჩვენ სახის შემოიფარგლება, აქ, არა?
ჩვენ შესაძლოა დაწერა ყველაფერი შიგნით ამ ერთი ფუნქცია.
მაგრამ, რომ არა iOS განვითარების ჩვეულებრივ მუშაობს.
>> ასე რომ, რასაც ჩვენ ვაპირებთ გავაკეთოთ არის, ჩვენ ვაპირებთ, რომ შევქმნათ რაღაც ახალი ფაილი.
მაგრამ, უფრო კონკრეტულად, ჩვენ ვაპირებთ შევქმნათ კიდევ ერთი Objective-C კლასი, ან
კიდევ ერთი ობიექტი -
კლასი და ობიექტები ურთიერთშენაცვლებადი აქ.
და, აქ როგორ შემეძლო, პოტენციურად, შევქმნათ კიდევ ერთი კლასი U კონტროლერები.
>> ასე რომ, ეს ქვე კლასის, როგორც თქვენ შეამჩნევთ, აქ, ის sub-კლასი
UI კალენდარი კონტროლერი, მაგრამ მე არ შემიძლია ეძახით ნებისმიერი სხვა სახელი აქ.
მე ვერ ვუწოდებ ამ CS50, მე ვერ ვუწოდებთ ამ თვალსაზრისით კონტროლერი, მე ვერ ვუწოდებთ
ამ blah კალენდარი კონტროლერი -
არაფერი მინდა.
ეს არის მხოლოდ სახელი კლასში.
თუმცა, ეს იქნება მნიშვნელოვანი რადგან, არსებითად, რასაც მე ვაკეთებ
აქ არის, მე შექმნაში მეორე დონის სახელი.
ასე რომ, ეს იქნება, როგორც, ზოგიერთი სახის type ან ობიექტი.
ასე რომ, ეს უნდა იყოს ცოტა generic.
ეს არ იქნება ძალიან კონკრეტული.
>> და ასევე, მე მინდა აღვნიშნო აღნიშნული ორი ვარიანტი.
იმიტომ, რომ ჩვენ ყველაფერს ვაკეთებთ იმისათვის, შიგნით კოდი, ზოგჯერ ეს არის ბევრი ადვილია
რათა ინტერფეისი ფაილი, როგორიცაა, რომ შემიძლია სიტყვასიტყვით გადააადგილება, როგორც
ჩვენ გავაკეთეთ ადრე storyboard -
თქვენ იცით, ეტიკეტების, ან ღილაკს, ან რასაც სხვაგან.
ასე რომ, xibs არის ფაილი, რომელიც საშუალებას გაძლევთ ამისათვის, და თქვენ უნდა Hook ეს მდე
ამ თვალსაზრისით კონტროლერი ფაილი.
>> ასე რომ, მე ვაპირებ შეგნებულად არ შეამოწმოთ ეს.
როგორც წესი, მინდა შემოწმება, და თუ მე მხოლოდ ეს for iPhone ან iPad, I
შემოწმება და უბრალოდ უნდა ერთი , თქვენ იცით, iPhone ან iPad.
მაგრამ რადგან მე ვაკეთებ უნივერსალური, მე ვაპირებ შექმნათ ორი იმ მოგვიანებით.
ასე რომ, მე ვაპირებ შეგნებულად მონიშვნის მოხსნა ეს.
>> ეს არის ასევე მართლაც მნიშვნელოვანია.
ბევრი ჯერ, მე მქონდა შეცდომები სადაც ეს არ არის გადამოწმებული.
ასე რომ, რა თქმა უნდა, ეს ფაილი არ არის, სახის, როგორიცაა, შედის თუ იმპორტირებული
შიგნით ამ test ფოლდერი.
ასე რომ, ჩემი კოდი აბსოლუტურად არ ვიცი არსებობის ამ ფაილის და
რომელიც იწვევს ბევრი ტკივილი და საათი გამართვის.
მაგრამ, უბრალოდ დარწმუნდით, რომ ეს შემოწმება, ასე რომ რომ, თქვენ იცით, სამიზნე ეს
ფაილი ამ პროგრამის.
>> OK.
ასე რომ, ახლა ჩვენ შევქმენით ორი ახალი ფაილი.
და ეს ფაილი გამოიყურება საკმაოდ ცარიელი.
და, ფაქტობრივად, მოდით გაგრძელდება მიერ შექმნაში XIB ფაილი.
ასე რომ, ადრე, მე ვიყავი Cocoa Touch ჩამოსაშლელი.
ახლა, მე ვაპირებ წასვლას მოხმარებელი ინტერფეისი touch, და როგორც ხედავთ, მე
შეგიძლიათ შექმნათ storyboard.
>> ასე რომ, თუნდაც დავიწყე ცარიელი განაცხადს, მე მაინც გამოყენება
storyboard.
მიუხედავად იმისა, რომ იგი იღებს სახიფათო თვალსაზრისით თუ როგორ გსურთ დაკავშირება
რომ თქვენს კოდი.
ასე რომ, მე არ წავალ იქ.
>> მაგრამ, რა გვინდა ახლა შექმნა ხედი.
და შეგიძლიათ iPhone ან iPad.
და, როგორც წესი, უნდა აღინიშნოს განსხვავება - თუ თქვენ აკეთებთ
უნივერსალური განაცხადი -
თქვენ არც დააყენა ტირეთი iPhone, ან შეგიძლიათ გააკეთოთ Twiddly.
ეს ნამდვილად არ აქვს.
ეს უბრალოდ თქვენ დიფერენცირება რომელი მოსაზრებაა, რომლის მოწყობილობა.
>> და ასე შემდეგ, ახლა გამოიყურება.
მაქვს ეკრანზე რომ შემიძლია მუშაობა.
და ასე, მაგალითად, შემიძლია დააყენა ეტიკეტების აქ, თქვენ იცით, და მე ასევე შეგიძლიათ დააყენა
სხვა ღილაკს აქ.
მე არ გადაიტვირთოთ შეცვლის ღირებულებები აქ.
>> მაგრამ, რაც მთავარია აქ რომ ფაილის მფლობელი -
ასე რომ, მე შიგნით iPhone კალენდარი, iPhone XIB ფაილი.
და ქვემოთ ამ ნავიგაცია ტერიტორიაზე ან ჩამოსაშლელი მენიუ, მინდა წასვლა
ფაილის მფლობელი.
და ეს არის ნამდვილად მნიშვნელოვანი ნაბიჯი აქ.
მინდა კლასი კალენდარი კონტროლერი, რომ ამ XIB ფაილი
იქნება დაკავშირებული ჩემი აზრით კონტროლერი.
და არაფერი, რომ მე შიგნით ჩემი აზრით კონტროლერი პროგრამულად არის
აპირებს აისახება აქ.
>> ასე რომ, თუმცა შენიშნავს, რომ -
რეალურად, მოდით ამ თვალსაზრისით background ლურჯი, მაგალითად.
ან მწვანე.
და შემდეგ, ასე რომ, თუ თქვენ შეამჩნევთ, უკან ეს კოდი, ეს არის სადაც ჩვენ მივიღეთ ჩვენი
ნავიგაცია კონტროლერი.
>> მიუხედავად იმისა, რომ ჩვენ გავაკეთეთ ეს ნაბიჯი, ეს მაინც იქნება წითელი და არა მწვანე.
და იქ მიზეზი.
ეს იმიტომ, რომ, როდესაც ჩვენ inited ჩვენი აზრით კონტროლერი, აქ -
უკაცრავად, ეს პატარა crazy -
როდესაც ჩვენ inited ჩვენი აზრით კონტროლერი აქ, ჩვენ inited ეს ზოგადი ტიპის
UIViewController.
OK?
ასე რომ, ჩვენ კი არ გავაკეთებთ, იგი ამ კლასში.
>> ასე მახსოვს, რომ ეს არის, როგორც კლასი არის.
ეს შეიძლება ფიქრობდა როგორც ტიპის, უბრალოდ როგორც UIViewController არის ტიპის.
და იმისათვის, რომ გამოიყენოთ, რომ, რა ჩვენ უნდა გავაკეთოთ არის იმპორტი ეს -
იმპორტის ViewController -
და, როგორც ხედავთ, ეს autofills ჩემთვის.
ასე რომ, ViewController -
და ახლა, აქ, მე შეგიძლიათ შეცვალოთ ეს UIViewController to ViewController.
და ახლა, აქ, მე შეიძლება შეიცვალოს ამ ViewController.
>> მოდით აწარმოებს ამ ერთხელ.
ის ჯერ კიდევ წითელი.
და მიზეზი, რის გამოც ეს ჯერ კიდევ წითელი იმიტომ, რომ -
woah, რა მოხდა იქ?
ჩვენ გვინდოდა, რომ გაერთიანდნენ ამ XIB ფაილის კალენდარი კონტროლერი.
თუმცა, იმისათვის, რომ რეალურად გააკეთებს რომ, ჩვენ უნდა წავიდეთ ამ.
და როდესაც ჩვენ გავაკეთებთ init, ჩვენ გვსურს initWithNibName და შემდეგ ჩვენ გვინდა
გავაკეთოთ ერთი string View_iPhone, მაგალითად.
შეგიძლიათ იგნორირება bundle აქ.
>> და ეს აპირებს საშუალებას ჩვენთვის, რეალურად -
uh oh, არსებობს პრობლემა.
უფლება.
>> ასე რომ, არსებობს პრობლემა, რადგან, ჩვენი აზრით XIB ფაილი, ჩვენ ეტიკეტების და
ჩვენ ღილაკს.
თუმცა, მიუხედავად იმისა, რომ ჩვენ უკავშირდება ეს ორი, არაფერი შიგნით
ViewController.h ან ViewController.m რომელიც ასახავს იმ
ღილაკების ან იმ ეტიკეტები.
ასე რომ, ჩვენ უნდა დაწეროთ იმ როგორც თვისებები კალენდარი კონტროლერი.
>> ასე რომ, ეს არის, თუ როგორ აცხადებენ ქონება.
ის იღებს, როგორც წესი, ეს ორი ვარიანტი.
მიზნებისათვის us და ეს სემინარი, მე ვიტყოდი, რომ, ზოგადად,
საუკეთესო თვისებები nonatomic და შენარჩუნება.
შეგიძლიათ წაიკითხოთ up by Google ჩხრეკა, თქვენ იცით, სხვაობა
nonatomic და შენარჩუნება, თქვენ ვიცი, Google ან რამე.
და მე გაგიყვანთ, ისევე, Stack Overflow, სადაც ხალხს ექნება
პასუხი განსხვავებები შორის.
მაგრამ ახლა, ის, რაც ჩვენ მინდა, რომ იყოს დაინტერესებული.
>> და ჩვენ გვინდა, რათა UI ეტიკეტების, ვარსკვლავი, და ჩვენ შეგვიძლია ეძახით რასაც გვინდა.
ჩვენ შეგვიძლია მოვუწოდებთ ამ, თქვენ იცით, იარლიყი.
და ჩვენ დაგიმზადებთ სხვა ერთი ღილაკი.
და მახსოვს, რომ არის ვარსკვლავი, იმიტომ, რომ ჩვენ საქმე გვაქვს პოინტერები
საკმაოდ ბევრი ყველგან შიგნით Objective-C.
>> თუმცა, ეს მაინც ვერ გადაჭრის პრობლემა, როგორც ხედავთ აქ.
და მიზეზი არის, რადგან, როდესაც ჩვენ მინდა დაკავშირება XIB ფაილის label ან
ღილაკს პროგრამა, ან header და განხორციელების ფაილი, ჩვენ გვინდა
დაამატოთ ეს ნაჭერი კოდი -
outlet.
გაითვალისწინეთ, რომ ეს არის საკვანძო სიტყვა.
>> და, როგორც კი დასრულდება აკრეფის რომ, მას უნდა ჰქონდეს ამ
ორი წრეების, აქ.
როგორც წესი, ისინი არ შევსებული შემოსული
მე არ ვარ დარწმუნებული, თუ რატომ არიან.
მაგრამ, როგორც წესი, თქვენ მოგიწევთ ხელით დააკავშირებს მათ მიერ აპირებს ამ მხარეს
კომუნალური ფართობი.
>> ასე რომ, ახლა, მაქვს ჩემი label არჩეული და მინდა გადაიტანეთ ეს ახალი
მითითება outlet ჩემს ფაილის მფლობელი, და შემდეგ დააჭირეთ Label.
ახლა, ბოლოს და ბოლოს, ეს იარლიყი დაკავშირებული ამ ნიშანს.
და ეს იარლიყი არის ის, რასაც ჩვენ ვაპირებთ გამოყენება პროგრამულად შეცვალოს თავისი
ტექსტი, მისი შრიფტი, მისი background ფერი, et cetera.
>> ასე რომ, რატომ არ ვაკეთებთ იგივე ღილაკს?
და თქვენ შეამჩნევთ, რომ ღილაკს, ეს ცოტა უფრო რთული.
იმის გამო, რომ მე ვგულისხმობ, თქვენ უნდა დააჭირეთ ღილაკს, ამიტომ ბევრი
ვარიანტები, თუ როგორ მომხმარებლებს შეგიძლიათ დააჭიროთ ღილაკს.
და შემდეგ, ვნახავთ, მოგვიანებით, რომ ჩვენ შეგვიძლია დაკავშირება ამ ჩვენს
კოდი რათა ის იმუშავებს.
>> ასე რომ, ახლა თუმცა, ჩვენ გვინდა, რომ დაკავშირება ის ფაქტობრივი ღილაკს
შიგნით ჩვენი კოდი.
ასე რომ, ჩვენ წასვლა new მითითება outlet, და მერე ღილაკს.
ახლა, მოდით აწარმოებს ამ ერთხელ.
Uh Oh.
OK.
მე არ ვიცი, რა ხდება აქ არის.
Whoa.
მხოლოდ ერთი წუთით, აქ.
>> სინამდვილეში, რატომ არ ვიღებთ შევხედოთ სხვა მაგალითი
ინტერესი დროს.
OK.
ასე რომ, აქ უფრო ადვილად მომზადდა მაგალითად ViewController.
როგორც ხედავთ აქ, მე შედის თვისებები
ეტიკეტზე და ღილაკს.
და შემდეგ, ამ ნაჭერი კოდი აქ -
ამ IBaction -
იყო კავშირი ეს ღილაკი აქ.
ასე რომ, როგორც ხედავთ აქ, Touch Up Inside უკავშირდება selector
ე.წ. ღილაკზე დაჭერისას.
>> ასე რომ, ჩვენ შეიძლება რეალურად გაიაროს მოძრაობის კიდევ ერთხელ, აქ, აღების Touch Up
Inside და გადმოიყვანა მას ფაილის მფლობელი, და შემდეგ
დააწკაპუნეთ ღილაკზე დაჭერისას.
ახლა, მოდით აწარმოებს ჩვენი კოდი.
ახლა, ეს ღილაკი მუშაობს და მიიღებს გვაძლევს მომდევნო გვერდზე.
>> და, იმ თვალსაზრისით, ჩვენი აზრით კონტროლერი, ეს არის ნაჭერი კოდი, რომელიც აიღო
ზრუნვა ღილაკი დაპრესილი.
და ეს მნიშვნელოვანია აღინიშნოს აქ, რომ მე შექმნილი სხვა ტიპის კალენდარი
კონტროლერი მოუწოდა მაგიდა კალენდარი კონტროლერი.
ასე რომ, ეს იყო მსგავსი უკან storyboard, როდესაც მე გამოათრიეს ერთი
ამ ცხრილის კონტროლერები შევიდა storyboard.
მე შექმნაში სხვა
>> მომცეთ ცხრილის კონტროლერი, alloc და init-ing, და შემდეგ აკეთებს
თვითმმართველობის dot ნავიგაცია კონტროლერი, დააყენებს ViewController, ამ ახალი
viewController.
და მე მითითებული ანიმაცია დიახ, რადგან ახლა შიგნით ჩემი app, და მე
გვინდა რეალურად ნახოთ ანიმაცია აპირებს საწყისი გვერდი მაგიდასთან
კალენდარი კონტროლერი.
>> აუდიტორია: თქვენ ჯერ კიდევ ინერვიულოთ დაახლოებით ნაგვის შეგროვების?
>> RHED SHI: რა არის ეს?
პოსტები
ასე რომ, კითხვა იყო, გაქვთ მუშაობა ნაგვის შეგროვების?
ასე რომ, Xcode 4 ჰქონდა, როგორიც ARC, რომელიც ავტომატური მინიშნება დათვლა.
ასე რომ, როგორც წესი, როდესაც თქვენ დავიწყოთ ახალი პროექტი, თქვენ შეამოწმოს, რომ, რადგან
არავინ ნამდვილად სურს გაუმკლავდეთ გამონთავისუფლების მეხსიერება და პერსონალი.
მაგრამ ვფიქრობ Xcode 5, არ არსებობს არც ეს ვარიანტი ახალი პროექტი.
ასე რომ, ეს ავტომატურად აკეთებს, რომ თქვენთვის.
დიახ?
>> აუდიტორია: შეგიძლიათ გაიტანოს PDF თქვენს storyboard?
>> RHED SHI: ჰო, ნამდვილად.
ასე რომ, ყველა ამ შევა კოდის, ასე რომ თქვენ ბიჭები შეიძლება შეამოწმეთ
ფაქტობრივი Xcode პროექტი მას.
ჰო?
>> აუდიტორია: მაგრამ, მე ვგულისხმობ, როგორიცაა, შემიძლია ბეჭდვა PDF ჩემი storyboard?
იმ შემთხვევაში, თუ მინდა გაიტანოს images რათა ნახოთ ვინმე.
>> RHED SHI: Oh yeah.
მე ვფიქრობ, შესაძლოა, შეგიძლიათ უბრალოდ მიიღოს ეკრანზე გადაღებული.
ჰო, და მათ ეკრანზე დარტყმული ან რამე.
ჰო.
>> ასე რომ, ვნახოთ.
ინტერესი დროს, ვფიქრობ, რომ ყველა l შეიძლება დაფაროს დღეს.
მაგრამ, მე ვიცი, რომ, ფაქტობრივად, მხოლოდ ძლივს ეხება ზედაპირზე iOS
განვითარება.
ასე რომ, გთხოვთ მოგერიდებათ ჩემთან თუ თქვენ გაქვთ რაიმე შეკითხვები iOS
განვითარება.
და, იმედია, შევძლებთ გაწმენდა up ზოგიერთი კოდი წყარო
კოდი ფაილი, ასე რომ თქვენ უნდა გარკვეული მართლაც ლამაზი მაგალითები მუშაობა.
>> გარდა ამისა, თუ თქვენ ბიჭები ვაპირებთ რომ CS50 Hackathon, მე შეიძლება იყოს ან
არ იქნება იქ, და შემიძლია დაგეხმაროთ out ზოგიერთი iOS განვითარების თვალსაზრისითაც.
ასე რომ, დიდი მადლობა, ბიჭები.