[Powered by Google Translate] [Seminar] [iOS: a Boss kimi proqramlar yazmaq] [Tommy MacWilliam] [Harvard Universiteti] [Bu CS50 edir.] [CS50.TV] Bütün hüquqlar, hər kəs, iOS xoş gəlmisiniz: a Boss kimi proqram yazmaq. Bu seminar iPhone apps yazılı diqqət gedir və öz növbəsində iPad üçün apps yazılı və biz əsasən vasitəsilə gəzmək olacaq bir app etmək üçün necə bir neçə müxtəlif nümunələri Tic Tac ucu kimi sadə bir oyun, və ya xəbər oxucu bir növ kimi bir app edilməsi daha maraqlı olduğunuz halda ya mən də bu barədə danışacağıq İnternet ilə əlaqə ki, bir şey. Burada qısa gündəliyi var. IOS apps, Objective-C adlı dilində yazılmış və bu, C oxşar deyil, həqiqətən bütün bir az biz dil özü haqqında bir az söhbət olacaq və sonra necə XCode adlanan bu app proqramı istifadə edərək iPhone apps yaratmaq üçün, siz hələ nazil əgər indi download başlamaq üçün çekinmeyin. Bir neçə gigabayt edir. Bu App Store-da pulsuz olmalıdır, belə ki, bir Mac lazımdır ideal OS X-in son versiyasını Siz değilseniz, heç bir problem. Biz sizin istifadə üçün mövcud elm mərkəzi Macs var XCode quraşdırılmış, və inkişafı üçün bu istifadə çekinmeyin. ilə Əgər app etmək istəyirəm, lakin Mac yoxsa, narahat olmayın. Ki, kampus resursları bol var. Və sonra siz edə bilərsiniz müxtəlif apps 2 böyük nümunələri əhatə olacaq. Objective-C C. super set deyirlər nə texniki Hər hansı C kodu də etibarlı Objective-C kodu deməkdir. Yəni kanal növü C. bəzi əlavə funksiyalar itiuclu o deməkdir ki, Bu xüsusiyyətləri bir daha malloc yazmaq olmayan daxildir, Allaha şükür heç o axmaq göstəricilərinə narahat olan və onlara azad və bütün məhsulları C haqqında nifrət və bu cür Objective-C getdi. İndi, Objective-C, həmçinin, çox daha böyük bir standart kitabxana belə ki, Objective-C pulsuz daxilində almaq daha çox funksionallıq var. Biz PHP yazılı zaman saxla biz dan getdi fark edə bilərsiniz, bütün bu crazy şeyi nəhəng kitabxana bu kiçik dil. Eyni şey iOS baş verir. Orada Buddist təqvim kimi şeylər üçün obyektlərin, və həqiqətən bir şey bəlkə yəqin ki, Objective-C-nin həyata keçirilməsində mövcud hesab edə bilər. Objective-C məqsədi hissəsi bir şey sened olunur Object-Oriented Programming çağırıb. Bu yeni konsepsiya cür, lakin biz, həqiqətən, çox öyrəndim artıq bu anlayışların bir çox. Object-Oriented Programming arxasında ideyası siz strukturu olacaq ki, bu şeylər ətrafında kodu bir çox dərsləri adlı və bu dərsləri həqiqətən structs tərənnüm olunur. Bir struct daxilində biz əsasən burada dedi, bir şey və bu şey üzvləri ola bilər. Məsələn, bağlı siyahısında node başqa şeylər ola bilər bir dəyər kimi, siyahıda növbəti node bir göstərici, və birlikdə göstərici və dəyəri struct bu bir instansiya ibarətdir ki,. Başqa Dərslər çox oxşar dərsləri də onların daxili funksiyaları ola bilər. Biz struct elan zaman, yalnız int n və ya sonrakı node * deyə bilər. İndi Objective-C ilə biz, həqiqətən, funksiyaları bilər o şeyi daxilində. Dərsləri edə başqa bir şey onlar digər siniflər data varis bilər. Məsələn, Objective-C dərsləri daxili bir dəstə baxaraq olacaq. Onlardan biri bir ekran görünüşü təmsil sinif ola bilər və belə deyərək Mən öz nöqteyi həyata istəyirəm biz əsasən Apple üzərində kimsə, yəqin ki, həqiqətən gözəl insanlar, demək Mənim üçün bu sinif yazdı və bu düymələr tapılanlar kimi şeylər emal və ya ekran göstərilməsi və biz, həqiqətən, ürəyisözlü olacaq bütün funksionallığı özümüz həyata keçirmək və belə sadəcə tərəfindən data devralma biz ki, sinif etdi ki, hər şey deyə bilər Mən də sinif daxilində istəyirsinizsə, və sonra, bəzi digər məhsulları etməyə gedirəm yəni bir app həyata keçirir. Yəni nə söz miras deməkdir. Biz bir daha konkret misal görəcəksiniz. Və nəhayət, Object-Oriented Programming ilə əsas olduğunu bu data encapsulation gətirib çıxarır. Bizim problem bəzi qoyur biz bu böyük, qlobal dəyişənlər ola bilər və hər yerdə Globals ki, biz dövlət takip istədiyiniz bilərsiniz. Dərsləri ilə biz bir obyekt daxilində məlumat encapsulating başlaya bilərsiniz. Biz app bir ekran varsa, biz, həqiqətən, hər hansı məlumatlar var ehtiyac yoxdur ki, bizim app daxilində digər ekran, və belə dərsləri ərzində şeyi encapsulating bu həqiqətən çıxarır daha yaxşı kod dizayn və bu, əlavə bəzi funksiyaları ilə mümkündür Objective-C. Forewarning, Objective-C üçün sintaksis bananas edir. Bu, biz əvvəl gördüm heç bir şey kimi belə ki, bir öyrənmə curve üçün istifadə əldə bir az Bu heck nə deməkdir? Amma bir dəfə həqiqətən, həqiqətən, hamar edir ilkin öyrənmə curve ki, keçmiş olsun apps yazılı başlamaq üçün. Burada demək, bir sinif elan etmək üçün var, mənim sinif və bəlkə burada daha sonra müəyyən gedirəm ki, bəzi şeylər var I @ interface demək gedirəm. I @ interface demək gedirəm. Mən sinif adı vermək gedirəm. Və sonra başqa bir yerdə mən, @ sonunda demək gedirəm bu @ interfeys və @ sonuna və hər şey mənim sinif olacaq. Yəni bizim. H faylları daxilində nə olacaq. Just C kimi. H faylları əsasən mövcud olacaq ki, bəzi şeylər burada dedi. Mən mütləq, onlar hələ nə belirten deyiləm lakin compiler onlar mövcud bilməlidir. Sonra içərisində bizim. M faylları çünki Objective-C m biz həqiqətən bu siniflər nə müəyyən olacaq edir. Çox bizim. C faylları kimi, biz funksiyaları üçün həyata keçirilməsi təmin edilir. Inside bizim. M fayl biz burada demək olacaq nə funksiyaları bütün onlar hər şeyi mənim sinif nə daxilində. Və nəhayət, daxili bir struct biz bu qıvrım aşırma daxilində demək olar int n və ya node * növbəti, və Objective-C, biz, söz @ mülkiyyət istifadə etmək olacaq və bu, xassələri müəyyən olacaq nə və ya siniflər bir hissəsi olan qeyri-fəaliyyət göstərir. Objective-C funksiyaları Zəng da bananas edir. Biz C funksiyaları elan edərkən biz int foo kimi bir şey dedi və sonra paren açıq və arqumentlər bir siyahısını verdi. Bu üsulları və ya funksiyaları elan Objective-C kimi görünür. Mən bir funksiyası və ya bir üsul bəyan istəyirsinizsə Mən üsul dedi alıram yerləşir, həqiqətən, bir sinif bir üzvü yalnız bir funksiyası əvəz cür deyil, həqiqətən, belə ki, içərisində mənim metodu mən yeni üsul yaratmaq istəyirik. Bu heç bir şey geri olacaq, buna növü qüvvədən düşmüş olacaq. Bu mənim funksiyası qaytarılması növüdür. -Çünki bilmirəm İndi biz burada parens var. Sonra, mənim funksiyası adı olacaq və sonra nəhayət biz yalnız biz C. idi kimi nöqtəli vergül var Burada yeni burada bu oğlan edir. Bu tire həqiqətən vacibdir, və nə deyir ki, burada bu üsul bir sinif bir misal çağırıb olmalıdır. Biz structs elan sonra yəqin ki, bir şey kimi, struct node n, və həqiqətən yaratdığı Mən, həqiqətən, iş başlamaq ki və ya structs biri instantiated onun daxilində nə ilə, bu tire biz o deməkdir ki, yalnız biz instantiated kimi sinif instantiate ki struct ona bu metodu zəng bilər. Mən üsulları dəlillər əlavə başlamaq istəyirsinizsə daha bananas olur. Burada mənim metodu adı var. Sonra bir nöqtə var gedirəm və bu kolon sonra burada deyir bəzi dəlillər gəlir. Bu üsul bir mübahisə edir. Onun dəlil növü bir int və arqument adı və ya metodu daxilində istifadə gedirəm ki, dəyişən i adlanır. Yenə bu metodudur. Bu, bir arqument edir. Daha çox dəlillər əlavə başlamaq istəyirsinizsə daha bananas alır ki, biz burada deyir ki, bu nöqtə arqumentlər mənim siyahısı gəlir var. Bu ilk arqument bir tamsayı edir. İndi bu ikinci arqument maraqlıdır. Mən funksiyası daxilində istifadə gedirəm ki, dəyişən belə daxili mənim funksiyası deyə bilər, f adlanır f + = 1 və ya bir şey. Burada Bu şey əsasən ki, dəlil və ya parametri üçün bir açardır. Biz əsas dəyər cüt idi və JSON və ya assosiativ seriallarda kimi bir şey kimi Objective-C, həqiqətən, açıq-aydın yalnız, belə ki, tamam, demək qərar Bütün bu parametrləri nə üsulu zəng zaman Mən, həqiqətən, onlara bütün adını gedirəm. Bir üsulu zəng zaman, həqiqətən, andFloat demək lazımdır və sonra siz onu da keçmək lazımdır Maraqlıdır ki, bu, adlı, lakin digər parametrlərin bütün deyil biz 3-cü dəlil olsaydı mən andFloat deyə bilər və başqa float və s. Mən bu üsulları zəng zaman, əlbəttə bananas edir Mən bir obyekt var və mən, foo adlı metodu müəyyən əgər və mən foo açıq / yaxın parens söyləyərək zəng deyil, istədiyiniz Mən bracket açmaq üçün gedirəm. Burada mənim metodu adı var. Mən bracket yaxın gedirəm və bu mən onu çağıran edirəm obyekti. Unutmayın, bu metodlar bütün dərsləri ərzində mövcud dərsləri onların daxilində müəyyən üsulları ola bilər çünki. Burada özbaşına, bəzi sinif obyekti yaratdıq və bu bunu üçün sintaksis edir. Obyekt yaratmaq üçün 2 pillə vardır. Ilk addım mən yer ayırmaq istəyirsiniz edir. Bu malloc bərabər deyil. Biz artıq malloc demək yoxdur. Biz m düşüb o alloc etdi və. M ilə. C əvəz. Biz alloc bir şey sonra sonra başlamaq lazımdır. Əsasən obyektlər yaratmaq zaman bir məntiq var isteyebilirsiniz yaratdığı etdiyiniz zaman həyata ki, bir-u mənim dəyərlər keçə bilər və ya kimi bir şey, bu init metodu əslində obyekt yaradır edir. Biz ilk, biz C etdiyiniz kimi, yer ayırmaq və sonra və ya bütün çox deyil bilər ki, bu başlamaq. Sonra bir obyekt o bu şey qaytarılması edirik. Bu texniki bir göstəricisidir çünki bir ulduz, burada var lakin göstəricilərinə ki, Objective-C böyük bir müqavilə artıq deyil, narahat olmayın. İndi NSObject adlanan bu sinif instantiated sonra və bu, yalnız Apple bir təsadüfi sinif edir. Biz bu instantiated etdik və indi bu sinif bir misal var Bu obyekt o, belə ki, müəyyən əgər o deməkdir ki, Bu metodlar Mən bu kimi onlara zəng bilər. Eynilə, bir arqumenti ilə bir üsulu zəng etmək istəyirdi, Bu bar üsulu belə ki, bir arqument edir qux üsul, bu 2 arqumentlər edir: və burada baz edir. Bu obyekt o bir funksiyası çağırır. Mənada etmək? Bu sintaksis mənada etməlidir, lakin növ üçün istifadə almaq. OK, in Objective-C daxil ki, bir neçə şey haqqında danışaq ki, mütləq C. daxil edilməyib C biz növ, bu axmaq xarakterli serialların kimi strings ilə məşğul idi və həqiqətən annoying var. Objective-C bütün bizim üçün tikilmiş o var və bu, inşa edir NSString adlanan bu sinif istifadə edərək. Mən daha çox gizli sintaksis var bir NSString yaratmaq istədiyiniz zaman. Əksinə biz @ "cs50" demək "cs50" deyərək çox və bu yalnız Objective-C strings elan üçün sintaksis edir. Bu unutmaq, belə deyil etmək çox asandır. İndi, bir dəfə mən bu var, bu simli, lakin qeyd həqiqətən yalnız bir obyekt var. Dedim mən sinif instantiated deməkdir NSString, başqası mənim üçün yazdığı NSString, deyilən və onlar artıq bu barədə çox gözəl idi, Mən bu üsulları zəng başlaya bilərsiniz. Mən bu obyekt s üsulu uzunluğu zəng edin o mənə simli uzunluğu geri olacaq. Bu C. yalnız strlen kimi Bu 4 qayıtmaq istəyirəm. Eynilə, mən qayğı bilərsiniz başqa bir metodu bu characterAtIndex edir. Bu simli s deyir ki, bir metodu Mən sizə zeroth xarakter almaq istəyirəm və bu, mənə karakter c qayıdacaqlarını və həqiqətən asanlıqla Google edə bilər ki, bu üsullar daha bütün dəstə var. Apple sənədlərin böyük və biz bir az ki nəzər lazımdır. Bu strings var. Biz də dəyişən ölçüsü seriallarda da tikilib Biz bir sıra elan zaman C saxla biz 5 elementlər, hekayə sonu var demək idi. Biz JavaScript və PHP var zaman başlaya elementləri əlavə və ya elementləri hərəkət kimi şeylər edir. Biz Objective-C eyni edə bilərsiniz. Normal C şəkildə bir sıra yaratmaq deyil yenə NSMutableArray adlı başqa bir sinif var. , NSArray da var və bu əsasən bir sıra içine gedir. Bu etmək istədiyiniz ilk şey mən ayırmaq istəyirəm deyir yeni array üçün yer və mən ayrılması sonra Mən sonra başlamaq lazımdır. Yenə yalnız bu 2 metodları zəng. İndi bu obyekt ki daxilində deməkdir Mən orada boş array oturan var. Mən bu seriala bir şey əlavə etmək istəyirsinizsə, mən addObject metodu zəng edə bilərsiniz. Mən bir sıra obyekt əlavə etmək istədiyiniz və mən simli CS50 əlavə etmək istəyirəm. Mən əksinə deyə bilərəm ki, aradan qaldırılması üçün istəyirdi istəyirəm serialın üzrə birinci yerdə obyekt aradan qaldırılması və ya bir etiraz. Mənada etmək? OK, siz cür bu kvadrat mötərizə şey üçün istifadə almaq. Yeri gəlmişkən, Apple kitabxanaların bir çox daxilində bu NS görəcəksiniz. Bu NS həqiqətən Steve Jobs ilk şirkətlərdən biri olan növbəti addım üçün dayanır o, həqiqətən kodu bir çox yazılı başladı və o Mac OS X və digər məhsullarının bütün əsas növləri kimi, və bu NS bu gözəl miras cür əvvəllər şirkətlərindən biri həyata bağırmaq deyil geri Apple ilk başlanğıc idi. Bu hər yerdə var. Bir daha vahid Objective-C, məsələn nəzər salaq. Burada XCode daxilində deyiləm. Burada almaq üçün, ilk, App Store-dan yükləyə XCode Mən, fayl burada getdi sonra bu qədər açıldı və burada yeni, daha sonra layihəsi. Mən yaratmaq istədiyiniz bütün bu variantları var ki, nə sonra, və biz, daha sonra bu seçimləri nəzər lazımdır ancaq bu, məsələn, çünki biz həqiqətən, hələ bir app üçün fikrində deyilik Burada aşağı gəldi və mən Command Line Tool bildirib və bu mən command line çalışır ki, bir app edir biz C. qaçaraq olduğunuz kimi Ki, mən bu layihənin yaradılmışdır necə, və indi mən burada deyiləm bu fayl da ilk göz qoy, və bu olduqca tanış baxmaq lazımdır. Mən int adı var. Dostuma argc, mənim digər dost argv var. Və biz bu mənim ilk Objective-C tətbiqi üçün giriş nöqtəsi olduğunu görə bilərsiniz. Burada biz indi bu iqnor edə bilər. Bu əsasən bəzi yaddaş idarə heyəti ki, siz həqiqətən olacaq heç narahat var. Burada bu ilk blok baxaq. Bu ilk line, mən Tələbə demək * Əgər alice = [[Tələbə alloc] init] nə ki? Burada Bu ilk tələbə, bu yəqin ki, bir sinif edir. Bu Apple yazdığı bir sinfi deyil, mən yazdığı bir sinif var. Mən istəyirəm ilk şey, yeni bir tələbə üçün yerin ayrılması istəyirəm və sonra mən onu başlamaq istəyirəm, bu mənə geri verir Bu yeni tələbə obyekt və mən Alice adlı bir dəyişən bu saxlanılması alıram. Ki, sinif haradan gəldi? Yaxşı, burada sol tərəfdə bu mənim layihə daxilində müxtəlif faylları bütün var. Biz bir Student.h və Student.m var burada görə bilərsiniz. Mən hər şeyi bəyan etdiyi. H fayl, unutmayın ki, ki, sinif daxilində mövcud olacaq. In ki, nəzər salaq. Bütün hüquqlar, burada biz bu @ interface var və bu, burada gəlir deyir ki, mənim sinif ərzində mövcud olacaq ki, hər şey bəyannamə. Sonra bir nöqtə var. Sonra bu NSObject şey var. Bu nöqtə biz bir az əvvəl müzakirə edilmişdir ki, miras bit bildirir. Bu deyir bir NSObject edə bilər hər şey NSObject başqası tərəfindən yazılmış bu sinif, olduğu Bunu etmək istəyirsinizsə bu NSObject edə bilər hər şey. Deyərək By: NSObject ki, mən əsasən deməkdir başqa sinif funksionalığına bütün miras qalmışdır. Bu, həqiqətən mənə istifadə edə bilər ki, müxtəlif metodları və xassələri bütün dəstə verdi. Down burada 2 xassələri yaradılması edirəm. Bu struct əgər mənim tələbə deməkdir ki, bu 2 şeyi olacaq içərisində mənim struct ki, belə hər tələbə bir adı var ki, bir simli və bir tələbə də bir sinif var bir int edir. Nəhayət, aşağı burada mənim tələbə üçün bir üsul yaratmaq üçün gedirəm. , Mən initWithName, mənim metodu adlanır və bir mübahisə edir və mübahisə bir simli və mən bu adı çağırdı. İndi biz, həqiqətən, bu sinif həyata necə baxaq. Burada indi mən. M fayl daxilində deyiləm həyata keçirilməsi üçün m, hərhalda. Mən son mənim həyata var və mən, həqiqətən, müəyyən edirəm burada deyil nə initWithName edir. Mən initWithName, mənim parametr adı, bu var Mən, həqiqətən, bir tələbə yaradılması alıram yerləşir ki, və bu bir az sirli, lakin bu boilerplate növü Siz inşaatçılar daxil etmək istəyirəm ki,. Burada Bu başlatma funksiyası, initWithName, konstruktor bir növüdür. Siz əsasən yeni tələbə obyekt inşa edirik və bəlkə daxilində bəzi data göndərilməsi. Mən istəyirəm ilk şey mən bu super şey init zəng istəyirəm. Xatırla ki, mən. H faylı geri burada dedi hər şeyi bir NSObject bir tələbə də var. Yəni nə də nə etmək lazımdır bir tələbə yaratmaq zaman deməkdir əmin olun ki, mən ki, data bütün devralma edirəm ki NSObject da düzgün başlatılmış olunur. Mən demək lazımdır bu super əslində ana sinif müraciət gedir Mən devralma edirəm ki, mən başlamaq əmin etmək istəyirəm Mən bunu istifadə etməyə çalışırıq başlamaq əvvəl mən asılı deyiləm ki, hər şey. Ki başlatılmış Əgər doğru bu yalnız deyən kimi əgər malloc null qaytarmayıb sonra bəzi xassələri qəbulu başlaya bilərsiniz. JavaScript və PHP biz bu söz, bu çağırmışdı və bu sinif mövcud instansiya edilir. Objective-C biz bu özünü çağırırıq. Mən self.name deyəndə, o deməkdir ki, obyekt Mən tələbə alloc init dedi Mən yaradılmış, bir obyekt mənə geri vermək olacaq. Deməkdir ki, mən ki, obyekt adı təyin etmək üçün istədiyiniz Mən içəri keçib nə üçün C kimi Sadəcə, biz bu dot üzvlərinin daxil belə self.name tələbə obyekt adı deyir İndi yalnız daxil keçdi nə olacaq Mən, həqiqətən, bir şey geri almaq Bunu nəhayət, onu qaytara bilər. Suallar? OK, bu özünü = super, init siz tamamilə miras stuff başa düşmürəm əgər narahat etmir. Sadəcə bilirəm ki, Siz öz init metodu etmək istəyirsinizsə yalnız Bunu, siz getmək üçün yaxşı olacaq. Bəli. >> [Tələbə] Nə əgər özünü demektir? Bu o deməkdir zaman malloc bu null bərabər, əgər biz həmişə yoxlanılır şey bu null idi və sonra biz çıxış edib. Bu gəlirlər null, onda biz yəqin seg günah olacaq, çünki bu, eyni şeydir biz bu manipulyasiya etməyə çalışır başlamaq əgər. Yəni bizim tələbə sinif var. Biz iki yoldan biri bizim tələbələr başlamaq olar deməkdir. Mən tələbə alloc init demək Əgər mən yalnız yazırdı ki metodundan istifadə deyiləm, əvəzinə mən sadəcə, alice.name deyə bilərsiniz və indi mülkiyyət adı təyin etmək üçün gedirəm. Eynilə, mən initWithName metodu istifadə etmək istəyirsinizsə, Mən sadəcə alloc demək, sonra daha çox init deyərək bilər Mən yalnız yaratmışdır ki metodu zəng gedirəm, mən Bob keçmək gedirəm. Bu nöqtədə, bu obyekt Bob Bob bərabər bir adı var. OK, aşağı burada biz əvvəllər baxdı ki NSMutableArray kullanıyorum. Mən yeni array başlatılıyor alıram space.Then ayrılması alıram. Mən bu 2 şeyi əlavə etmək üçün gedirəm. Bu array artıq tələbə obyektləri tutur. Heç mən bu tələbələr bir sıra demək oldu Qeyd edək ki,. Mən bunu bir sıra, müddəti var bildirib. Sonra mən istəyirəm ki, bu nə daxilində bilər. Burada 2 obyektləri var. Nəhayət, mən burada, bu TF bir obyekt var. Burada TF.h artıq əsasən eyni şey. Mən NSObject, və yolu ilə devralma alıram siz siniflər yaratmaq zaman bu sizin üçün edilir, interface boilerplate bu cür. Bu tələbələrin əmlak var. Mən bir neçə üsulları burada həqiqətən bütün çox yoxdur ki, var və mən bu TF obyekt yaratmaq sonra o deməkdir ki, Mən bu kimi bu metodu dərəcəli zəng edə bilərsiniz. Objective-C sintaksis haqqında suallarınız biz bir daha daxil hərəkət başlamaq əvvəl maraqlı apps inkişaf stuff? OK, belə nin əslində bir iPhone app edək. IPhone app siz daxilində istifadə lazımdır ki, əsas sinifləri keçirmək kontrollerlər deyilir və görünüşü nəzarətçi əsasən bir ekran təmsil Sizin app daxilində, mən, məsələn, musiqi app Ben əgər bir görünüşü nəzarətçi Mən iPhone bütün mahnıları keçirmək olan mövqeyini əks bilər. Mən mahnı basın və ifa başlamaq zaman başqa bir görünüşü nəzarətçi ola bilər və ya rəssamların daxil aşağı qazma alıram kimi. O müxtəlif ekranlar hər bir müxtəlif görünüşü nəzarətçi kimi təmsil bilər və görünüşü nəzarətçi həqiqətən bu ekran işləri necə deyir ki, yalnız bir sinif edir. Məqsədi nəzarətçi daxilində Things, biz xüsusiyyətləri olacaq bir düyməsinə kimi şeylər bizim fikrimizcə nəzarətçi mülkiyyəti olacaq. Biz də üsulları var olacaq və bu, əsasən, hadisə işleyicileri var. Bu üsul bu düyməsini basın zaman deyir Mən, nəhayət, yenə bir şey etmək istəyirəm və biz cari instansiya daxil olmaq üçün bu özünü söz istifadə olacaq. IOS ilə interfeys yaratmaq üçün, həqiqətən, həqiqətən, həqiqətən asandır. Onlar bu gözəl drag və Interface Builder adlı açılan interface və 2 əsas anlayışlar ki, Objective-C Interface Builder tel IBOutlet və IBAction var. Bir IBOutlet sadəcə bir düyməsinə ki, bir əmlak bəyan əgər deyir ki, və siz, faktiki UI bir şey onu bağlamaq istəyirəm siz bir çıxış demək olacaq. Eynilə, bir olay işleyicisi təmsil etmək istəyirsinizsə, sonra bir hərəkət var demək olacaq. Həqiqətən bu qrafik təmsil qədər tel və kodu, həqiqətən, həqiqətən sadə. Bir IBOutlet əlavə etmək istəyirsinizsə, Siz bütün, klik nəzarət edir və bu, həqiqətən, hızlı bir misal görə bilərsiniz. Məlumatlarına Controller deyir burada basın nəzarət. Siz, əksinə interfeys daxil sürükleyin gedir, ya edirik bir hadisə handler bağlamaq istəyirsinizsə, siz interfeys sürükleyin olacaq digər istiqamətdə. Bir həqiqətən sadə iOS Məsələn nəzər salaq. Üzrə yeni layihə yaratmaq edək. Mən tətbiqi üçün bura gəlib gedirəm və mən Subay View Application basın gedirəm. Mən növbəti basın gedirəm. Mən layihənin adı verəcəyik. Mən bunu Xoşgəldiniz zəng edəcəyik. Maraqlıdır ki, Apple bir məhsul oluşturuyorsanız tutur ki, siz onu sata bilər və onlar pul edə bilərsiniz. Down burada bu iPhone app edir ki, gedirəm. Siz iPad app yarada, və ya bu apps biri yaratmaq istəyirsinizsə, ki, siz də bunu edə bilər, həm də cihazları dəstəkləyir. Bu sizin checkmarks kimi baxmaq istəyirəm nə. Biz sonra göreceksiniz storyboards, istifadə etmək istədiyiniz və siz mütləq, avtomatik arayış hesablanması istifadə etmək istədiyiniz olan malloc və pulsuz demək olan engelleyen bir gözəl xüsusiyyətidir. Siz malloc və pulsuz zəng etmək istədiyiniz halda, bu Checked tərk edəcək. Mən İrəli düyməsini basın lazımdır və bunu saxlamaq, istədiyiniz nəhayət, bu mənə sual edir. Mən yaratmaq təşkil edəcəyik və biz burada gedin. Yeni bir layihə yaratdıq. Burada sol ərzində mənim layihə daxilində olan bütün faylları var, və mən bütün dəstə var ki, qeyd, mən heç bir şey belə olmadı. IOS böyükdür. Məsələn, burada bu ViewController.h, Bu, mənim ilk görünüşü nəzarətçi təmsil edir Mənim app daxilində ilk ekran belə. İndi biz bu söylədiyini bilirik. Biz, bu sinif ViewController zəng edirəm deyərək edirik və ViewController bir UIViewController ki, hər şey və bu, yenə Apple üçün bizə lazımlı məhsullarının bir çox ki, yazırdı ki, bəzi sinif ekran keçirmək istəyirəm. Mən, həqiqətən, mənim fikrimcə, nəzarətçi nə müəyyən edə bilərsiniz burada deyil, və mən, həqiqətən, bu, hər hansı bir ehtiyac yoxdur çıxır. Bu Apple pulsuz üçün mənə verir boilerplate kodu. , Mən ilk lazım idi, və ya bir sinif yoxdur belə ki qurtarmaq və bu xilas edə bilər. OK, belə ki, bu, mənim boş ekran. İndi, bu MainStoryboard.storyboard basın bildirin maraqlı almaq başlayır və bu. Bu, mənim app ilk ekran təmsil edir. Mən bir düğme əlavə etmək istəyirsinizsə, HTML bir düyməsini tag yaratmaq idi. Android siz bir düyməsinə tag yaratmaq üçün lakin iOS Mən yalnız sağ alt burada enmək əgər Mən burada bu 3-cü bir basın əgər və bu obyektləri deyir yerləşir və mən aşağı diyirləyin və ya mən düyməsini üçün axtarış başlaya bilərsiniz. Mən, həqiqətən, bu doğru sürükleyin və açılan belə, əgər, bir düyməsinə baxmaq Mən yalnız mənim app bu ekran bir düğme əlavə etdik. Mən mətn dəyişdirmək istəyirsinizsə, mən ikiqat, bu basın bir şey kimi tamahlandırıcı demək "Mən basın." Bu app run əgər OK, indi, biz, bu tərtib belə çalıştırmak üçün mən üst sol oynat 'düyməsinə basın və app var. Mən bir şey etmədim və Mən şirin axtarır iPhone app var. Mən bunu dayandırmaq istəyirsinizsə, siz stop düyməsini basın daha fun çünki. Gəlin Mən, həqiqətən, Mən bu düyməsini basın zaman nə bir şey istəyirəm ki, deyirlər. Nə etmək lazımdır Bunu etmək üçün mən yaratmaq lazımdır Yeni hadisə handler və ya fəaliyyət. Yəni mən adlandırmaq istəyirəm ki, bəzi metodu yaratmaq lazımdır o deməkdir ki, Mən düyməsini basın zaman, belə üzrə yeni üsul yaratmaq imkan verir. Mən ViewController.h daxilində deyiləm. Mən bir üsul var ki, demək lazımdır. Mən görünüşü nəzarətçi bu zəng üçün gedirəm, çünki mən ilk bir tire lazımdır. Mən bu növü vermək lazımdır. Bu növü daha əvvəl gördüm ki IBAction şey olacaq. Bu hadisə handler edir, bir IBAction qayıtmaq olacaq belə və bu ki XCode bir ipucu edir bu mən bir şey tel istədiyiniz şeydir. Mən buttonPressed, nöqtəli vergül kimi, bir ad verə bilər. İndi mənim sinif daxilində yeni üsul elan etdik. Mən bu metodu mövcud malikdir etdik. İndi ViewController.m daxil bildirin, və bu üsul nə deyək. Mən yazmağa başlayın varsa, məsələn, (void) buttonPressed bildiriş XCode həqiqətən gözəl və mənim üçün autocompletes. Bu, həqiqətən gözəl deyil. Edir. M fayl daxilində mən də etibarsız deyə bilərəm ki, burada edək, ki IBAction həqiqətən bir növü deyil, çünki bu. Bu, faktiki olaraq, bir boşluq olması haradasa müəyyən hashtag oldu və yenidən, bu, yalnız deyir ki, XCode bir ipucu edir Mən bu hadisə handler olmaq istəyirik və nə yalnız ikinci görəcəyik. Bu düyməni basdı zaman mən annoying bir şey gedirəm bir popup göstərmək istəyirəm. Mən UIAlertView adlanan bu sinif yeni instansiya yarada etmək üçün, və bu Apple annoying öz-up'lar keçirmək olacaq yazırdı ki, bir sinif edir. Biz bu popup alert zəng edəcəyik, mən 2 addımlar var, bu obyekt yaratmaq üçün, xatırlayıram. Mən nə etmək lazımdır ilk şey yer ayırmaq deyil. Mən UIAlertView istəyirəm. I yer ayırmaq istəyirlər. Bu mənim ilk üsul var. Mənim növbəti üsul, onu başlamaq istəyirəm və mən initWithTitle adlanan bu böyük, Uzunmüddətli üsulu var. Bu əsasən bu popup deyir nəzarət olacaq. Mənim popup adı salam ola bilər. Bu up mesaj ola bilər "Bu iOS edir." Nümayəndəsi şey, mən nə bilmirəm. Gəlin bu heç bir şey deyirlər. İndi görünür olacaq ki, düyməsini "Bu, əmin deyil" kimi bir şey demək olar və mən, həqiqətən, hər hansı digər düymələri istəmirəm, belə ki, silin və bracket yaxın bildirin. OK, əlavə bir yaratmışdır. Biz də gedin. Bu yeni popup yarada necə. Mən, həqiqətən, popup göstərmək istəyirəm, mən şou metodu zəng etmək istəyirəm. Mən alert və şou deyə bilərəm ki, nə üçün, və yenə AutoComplete super gözəl idi. Mən yalnız s çap ki, əgər nə unuttum Əgər Mən bunu nə anlamaq üçün burada vasitəsilə hərəkət edə bilər və gözəl filtreler. İndi bu yeni popup yaratmışdır. Biz sonra nümayəndəsi nə deməkdir qayıda bilərsiniz və indi mən bu metodu atəş olmaq istəyirəm demək istəyirəm Mən düyməsini basın zaman, mən eskizlərinin qayıtmaq gidiyorum belə və mən indi bu IBAction əlavə etmək istəyirəm. Siz istədiyiniz ilk şey düyməsini basın. Mən bu düyməsini basın zaman mən nə bir şey istəyirəm. Mən nəzarət basıb saxlayın gedən deyiləm. Mən basın və düyməsinə sürükleyin gedirəm burada yerləşir onu Məlumatlarına Controller deyir. Biz bu gözəl qədər işıq olduğunu görə bilərsiniz. Mən siçan ilə gedək, mən bəzi variantları var mən indi burada bu popup var. Bunlardan biri mən qeydiyyatdan olar ki, hadisələr deyil. Bu mənim h fayl IBActions kimi elan o üsulları vardır. Bu, XCode nə az siyahısı görünür bilir necə belə ki, yalnız bir işarə var. Mən bərk düyməsini basın varsa, indi hadisə handler qeydə etdik. JavaScript biz Mən hadisə handler qeydə bəzi kodu demək idi. Objective-C, həqiqətən, asan idi. Mən bu çalıştırıyorsanız İndi düyməsini basın zaman mənim hadisə handler, yanğın davam edir və bu popup almaq üçün gedirəm. Orada Super, super sadə. Əgər qeydiyyatdan baş verən hadisələr bütün görmək istəyirsinizsə komponenti mən bu düyməni basın əgər və mən sağ üçün bura gəl ilk, mən düyməsinə növü kimi şeylər edə bilərsiniz burada görə bilərsiniz o I və ya əlavə contact button biri mənə əgər və ya hər hansı. Mən bu düyməni olan hadisələr bütün görmək istəyirsinizsə Mən sağ burada bütün yol gəlib əgər biz bu müxtəlif tədbirlər bütün hadisələri burada görə bilərsiniz. Mən tap ikiqat və ya hər zaman düyməsini gidelim zaman, 'düyməsinə basın bilərsiniz və yalnız qeydə biri, bu hadisə Inside Touch Up adlanır və bu kimi tezliklə mənim barmaq 'düyməsinə off gəlir kimi deyir ki, Bu tədbirdə yanğın gedir və dəqiq yalnız nə var. Bu default düyməni basdı hadisə növüdür. Hər hansı sual, bu günə qədər? Okay ki, biz kodu şeyi tel başlaya bilərsiniz necə bizim interface daxilində şey daxil. Biz idi ilk şey, kodu tapmaq idi saxla və sonra biz kodu interfeys qədər simli və bizim ilk app var. OK, həqiqətən sərin idi və biz bu düyməni yaratmışdır. Biz əgər xassələri bir dəstə yaratmaq üçün mənə nə Bu düymələr təmsil? Məsələn, Tic Tac ucu mən, 9 düymələri var və 9 dəfə sürükle üçün super, super annoying olarıq və ya 81 Tic Tac Toe etmək əvəzinə 9 olsaydı və mən sürükleyin və 81 dəfə düşmək idi ki, topal deyil. Biz əvəzinə edə bilərsiniz çox bir HTML kimi biz kimlikleri və adları kimi şeylər idi və biz hər şeyi axtara bilər onların ID tərəfindən tags adlı iOS bənzər bir anlayış var. A tag sadəcə bir komponent üçün unikal ədədi tanımlayıcı. Mən bu 0 tag var demək Əgər, misal üçün, Mən bir düğme yaratmaq və 0 tag verir, və biz yalnız ikinci bunu necə görürsünüz əgər, Hesab edirəm ki, düyməsini almaq istəyirsinizsə mən sadəcə mən zəng etmək istəyirəm deyə bilərsiniz burada artıq obyekt üsul viewWithTag, Məsələn, cari ekran təmsil edən self.view,. Hesab edirəm ki, viewWithTag metodu zəng, mən tag 0 düyməsini geri çəkmək üçün gedirəm. Binasının Tic Tac ucu bu nəzər salaq. Birincisi, bu, mənim eskizlərinin edir. Mən bu 10 UI düymələr yaratdıq. Onlar bütün eyni ölçüdə istəyirik edək. Mən bu bir basın və mən bu sağ burada qayıtmaq edin siz, mən burada font düzəlişlər, mən bir az böyük font etdi görürsünüz lakin mən də nə mən bu tag müəyyən idi. Mən bu 1 tag var ki, və sol üst edir. İndi mən başqa düyməsini basın varsa, burada bu ikinci biri kimi, İndi mənim tag 2 olduğunu görəcəksiniz. Bu düymələri hər yalnız unikal tag var və bu sonra necə əlaqə başlamaq gedirəm edir Mənim app ilə. Bu, bir görünüşü nəzarətçi bütün daxili lakin burada biz nə edir. Biz burada 3 xassələri var. İlk və son bir mənim heyəti dövləti təmsil edir. Əsasən bu ilk bir Xs və Os olduğu təmsil bir sıra edir. Bu, digər bir burada olan növbəsində bu bizə deyir. Mən də burada bu şeylər var ki, görəcəksiniz. Əvvəl biz xassələri elan zaman biz onlara bir ad və bir növü verdi. Biz də burada bəzi əlavə məlumat verə bilər. Bu ilk nonatomic deyir, bu nə deyir əsasən yalnız bir şey heç bir zaman bu dəyişən daxil olmaq üçün çalışır olacaqsınız. Siz, multi-yivli ki, daha kompleks tətbiqləri edə və belə geri Not biz müxtəlif mövzuları idi və müxtəlif sprites eyni zamanda müxtəlif şeyler bilər. Ki, biz axtarır olacaq ki, bir şey olmayan halda, yoxsa biz nonatomic demək əgər həqiqətən şeyi bir az daha sürətli etmək olacaq. Biz də təyin güclü və ya zəif adlanan bu şey var. Bu təyin yalnız bu standart bir növü olduğunu söyləyir. Bu yalnız bir bool, çünki bu, bir obyekt və ya bir göstərici deyil belə bool Objective-C daxil edilir. Bu burada göstəricilər ilə xülya bir şey etməyə cəhd etməyin deyir. Bu müntəzəm köhnə scaler var. Güclü və zəif, bu zəif əslində deyir Mən bu görünüşü nəzarətçi bir şey işarə etmək istəyirəm. Mən, həqiqətən, ayrılması davam və ya bu özümü init deyiləm. The interface builder, mən app çalıştırdığınızda, bütün başlatma idarə edir. Mən zəif demək, o başqası bu yaratmaq olacaq deyir. Mən güclü demək, bu, mən biri gedirəm deyir ki, ki, bu board obyekt yaratmaq oldu və belə burada mən burada daha çox üsulları var Məsələn, yeni oyun düyməni basdı zaman üçün fəaliyyət, digər düymələri hər hansı bərk zaman üçün fəaliyyət, və Et Cetera. Biz Tic Tac ucu məntiqi çox çox nəzərə almaq deyil çox maraqlı, lakin edək nəzər baxmayaraq biz iOS daxilində edə bilər ki, bəzi şeyləri. Bu yeni oyun üsulu atəş olacaq Mən yeni oyun düyməsini basın zaman. Qədər mən sadəcə mənim eskizlərinin artıq gəlib ki, çəngəl. Yeni oyun tıklayan. Mən sağ buraya gəlmək varsa, mən görürəm ki, Bu newGame metodu simli edir Inside Up Touch. Bu atəş almaq üçün gedir görə. Bu newGame üsul bir set up etmək niyyətindədir. Mən siz board dövlət təmizləmək istəyirsiniz olacaq. Bu mutable seriallarda bir gözəl üsuldur. Bu, artıq X öz növbəsində demək gedir və indi bu viewWithTag şey istifadə etmək gedirəm. Mən düymələr tags 1-9 var bilirik ki, və mən özbaşına seçilmiş bir şey var. Mən boş hər bir düyməsinə mətn qurmaq istəyirsinizsə Mən yalnız bir yeni oyun açılmış və hər hansı istəmirəm, çünki Mən bunu edə bilərsiniz artıq Xs və ya Os yola düşəcək. Mən etiketi baxımından, 1, 2, 3, 4 Et Cetera mənə deyə bilərsiniz. Bu müxtəlif düyməsini hər dəfə çəkəcəyəm. Burada UIButton üçün tökmə gedirəm. Biz üzüb gedirdi və əksinə ints tökmə bilər kimi bu bir UIButton bu salmaq istəyirəm ki, deyir. Deməkdir ki, bu cür UIButton * olacaq çünki göstəricilərinə, amma narahat olmayın, onlar artıq qorxudan deyilik. Sonra mən bu üsulu zəng gedirəm bu düyməni var. Bu üsul setTitle forState adlanır və bu deyir olunur Mən boş string olmaq düyməsinə mətn qurmaq istəyirəm və mən onu bərk deyil zaman boş string olmaq istəyirəm. Mən bu metodu istifadə edirəm, mən düyməsinə mətn dəyişə bilərsiniz kimsə edib, ancaq 'düyməsinə yalnız orada oturan zaman demək istəyirəm kimi Mən mətn boş olsun. Nəhayət, biz, mənim board başlamaq olacaq və mən, hər şey 0 hazırda demək gedirəm Bu board belə üzvləri dəyişməz bir mutable array edir olan I addObject üsul və yalnız bir 0 daxilində zəng edə bilərsiniz deməkdir. Mən yeni bir oyun yaratmaq zaman nə baş var. Nin başqa bir nəzər salaq. Burada Bu üsul bərk olacaq ki IBAction edir hər dəfə bu meydanların bir bərk. İndi bəzi Tic Tac ucu məntiq burada var. Biz onun öz növbəsində edir anlamaq və biz bir X və ya O müəyyən əsaslanır lakin biz bu eyni hadisə handler yeniden edirik ki, görürsünüz o düymələri hər bir bir. Mən üst sol düyməsini bir üsul yoxdur ki, deməkdir ki, Mən aşağı sağ düyməsini üçün müxtəlif üsul ki, görülən bilər baxmayaraq. Bu həqiqətən yaxşı dizayn deyil. Mən burada yapýyorum Mən, həqiqətən, müəyyən gedirəm edir bərk ki düyməsinə tag edir. Bu oyun metodu bir mübahisə edir ki, görürsünüz. Bu göndərən deyirlər və nə göndərən göndərən gedir edilir dəqiq zaman tədbirlər nə təmsil edir. Mən bir düyməsini basın, bu göndərən ki UIButton olacaq Mən, həqiqətən, bərk ki, o deməkdir ki, ki UIButton Mən tag yaradılmışdır çünki tag var. Mən tag əldə etmək istəyirsinizsə, mən sadəcə demək olar Mən göndərən tag istəyirəm və yenidən, mən yalnız bir UIButton üçün casted etdik. Mən göndərən bir UIButton olacaq bilmək baş verir. Bu həmişə UIButton olmaq deyil. Mən, məsələn, eyni olay işleyicisi qeydiyyatdan bilər  bir düyməsini bir kaydırıcıyı üçün bir biri üçün. Bu halda, onlar bütün düymələri olduğunu biliyorum, mən demək gedirəm Mən bu bir düyməsinə olmaq istəyirəm, sonra mən tag əldə edə bilərsiniz və tag mən indi board daxilində am yerləşir bilirik. Mən sadəcə X və ya O, öz növbəsində flip bilər, ya bilərsiniz , et Cetera qalib olan edin. Bu günə qədər hər hansı suallar? OK, biz online-biz çox almaq istəmirəm olunub bütün kodu bu Tic Tac ucu məntiq, indi siz həqiqətən bilərsiniz biz edirik bütün, biz bu sıra artıq loop edirik ki, biz burada loops üçün bir neçə var, və biz yalnız görmək karşılaştırdığınızdan biz bütün satırlar, belə bir sütun və ya bir şey bir matç matç var. Mən bu düymələri bir kran əgər həqiqətən bu app çalıştırmak üçün ki, oyun üsulu atəşə tutulmuşdur, yalnız müəyyən deməkdir ki, düyməsini bir X olmaq, belə ki, indi bu düyməni bir O olmaq və s edəcək və belə ki, bu bir səhifə app ilə qarşılıqlı başlayaraq edirsinizsə bilərsiniz. Biz kodu yazmaq lazımdır ki, diqqətlə oxumaq çekinmeyin amma indi yalnız bir səhifə daha çox bəzi apps haqqında danışmaq edək. Tic Tac ucu kimi maraqlı iOS daxilində, apps bir çox idi Bu qazma cür çox ekranlı şeyi aşağı edir. Biz danışmaq lazımdır ki, ilk anlayış, protokollar var və protokol sadəcə üsulları bir sıra siz müəyyən söz bilər. I 2 metodları ilə bu yeni protokol, bu ilk bir yaratmaq, əgər qaytarılması növü etibarsız olduqda, bu foo çağırıb. Bu arqumentlər heç edir. Mən başqa bir metodu var. Bu int qaytarır. Mən bu bar adlanır və bir mübahisə edir. Bütün bu protokol, burada SomeProtocol qədər deyirlər ki, bu kimsə həyata keçirə bilər şeyi bir sıra var. Mən daxilində bu protokolun foo nə bildirib yoxdur. Əksinə, mən yalnız istəyirsinizsə foo müəyyən edə bilər deyərək alıram. Mən bir görünüşü nəzarətçi yaratmaq və ya bir sinif yaradılması alıram edin Mən daxili ki, sinif vəd həyata bilər bu metodlar, bəzi, belə ki, məsələn, əgər demək indi mən sizə vəd edilməsi alıram deyir, daxili ki, Bu baxımdan nəzarətçi sinif I foo və bar üçün anlayışlar var. Niyə faydalıdır? IOS daxilində komponentləri bir çox bu istifadə etmək dizayn model nümayəndə heyəti adlanır və nümayəndə heyəti nə deyir ki, məsələn, bir mətn qutusuna varsa və mətn qutusuna daxilində qeydiyyatdan ola bilər ki, bəzi hadisələr var deyil, mən nə edə ayrı-ayrı hadisələr yaratmaqdan deyə bilər Bu mətn qutusu nümayəndəsi bir obyekt olacaq. Mən indi bir nümayəndə ki, o deməkdir ki, bir hadisə, mətn qutusuna atəş olardı zaman daha çox və ya bu kimi bir şey qeydiyyatdan olan yalnız nümayəndəsi bir üsul zəng edəcək. Məsələn, içərisində mənim metin qutusu Mən basın zaman üçün bir üsul var ki, sağ alt 'düyməsinə işlər və belə daha çox deyə bilərəm nə hadisə handler olunur qeydiyyatdan mətn qutusuna, burada sizə bir metodu zəng etmək üçün istədiyiniz bir obyekt hər dəfə kimsə presleri görülən düyməsini və ki, obyekt bir protokol həyata keçirilməsi o deməkdir ki, Mən ki, görülən düyməsini fəaliyyət müəyyən söz deyir çünki bu metod müəyyən etmir və OK düyməsini basın varsa, sonra confusing olacaq. Nin Məsələn nəzər salaq. Burada sadəcə, bir mətn qutusuna var və bu sağ burada bu mətn qutusuna xüsusiyyətləri biri nümayəndəsi deyil. Bu sinif bir mülkiyyətidir. Mən burada idi mən tıkladım nəzarət və mən burada bu yerdən sürüklənəcəklər görünüşü nəzarətçi və bu mətn qutusu nümayəndəsi deyir görünüşü nəzarətçi olacaq. Bəzi tədbirlər baş deyil, qeydiyyata çox zaman deməkdir ki, Mən sizə nümayəndəsi onları göndərmək istədiyiniz ayrı-ayrı hadisə işleyicileri. İndi mənim fikrimcə nəzarətçi nəzər salaq. Edin. H fayl daxilində bir söz etdik. Mən bu protokol daxilində bəzi üsullarını tətbiq vəd etdik UITextFieldDelegate və yenə adlı bu yalnız mən həyata seçə bilərsiniz ki, bəzi bəzi şeyləri siyahısı. Mən. M faylı buraya, mən belə bir üsul tətbiq edir. Mən bunu textFieldShouldReturn aradıktan ki, protokol daxilində adlanır nə çünki. İndi ki, mətn sahəsində görülən düyməsini basın zaman içərisində bu deyilən almaq üçün neler, belə bir hadisə handler qeydiyyatdan vermədi. Mən nümayəndə bağlı və bu hadisə atəşə zaman bu mənim eskizlərinin üçün buraya gəlmək və run əgər adlı almaq ki metodu it- ki, yükləmə var, biz bu nə görə bilərsiniz. Mənim ekranda I 2 şey var. Mən bu mətn sahəsində var və mən bu etiket var. Mən sadəcə mən bu etiketin mətn mənə dedi alıram istifadəçi mətn sahəsində daxilində tipli nə bərabər olmalıdır. Burada növbəti line sadəcə mən zəng edirəm ki, bir metodu Mən sizə klaviatura gizlətmək istəyirsinizsə deyir ki, mətn sahəsində. Bu yalnız Apple seçdi ki, ixtiyari metodudur. Mən hər şeyi qədər tel idi bir şey idi əvvəl Yenə, mən ilk buraya gəldi. Görünüşü nəzarətçi mən, mətn qutusuna üzərində sürükleyin. Mən bu mətn sahəsində mülkiyyət edə bilər ki, gedək, mən burada görə bilərsiniz artıq burada görünüşü nəzarətçi ildən əmlakın müəyyən etdik bir mətn sahəsində bir IBOutlet edir. Bu bu əmlakın qədər tel bilər ki, deyir mənim UI bir mətn sahəsində. İndi bu basın zaman yazmağa başlaya bilərsiniz. Mən görülən düyməsini basın əgər İndi bu yanğın davam edir Mən indi cavab verə bilər ki, bir hadisə. No hadisə işleyicileri. Mən yalnız həyata düyməsini cavab nasıl. Mənada etmək? Bu, siz heç özünüz tapa bilər bir dizayn model deyil öz protokol yaradılması, ancaq bilirsiniz ki, bəzi müxtəlif iOS komponentləri müxtəlif yollarla hadisələr qeydiyyatdan keçin. Buttons, misal üçün, o IBActions istifadə edin. Mətn sahələrində, digər tərəfdən, nümayəndə istifadə edir. Biz görürük və sənədlərin qədər daxilində bütün baxa bilərsiniz. Yeri gəlmişkən, sizin üçün iOS daxil UI məhsullarının bir ton, həqiqətən var belə, məsələn, yol mən sağ alt görülən demək ki edib Mən bu mətn sahəsində seçilir. Mən buraya gəldi. Mən, əsas qayıtmaq üçün bir az aşağı kaydırılmış demək istəyirik ki, əgər kimi və mən, həqiqətən, bu şeylər bütün dəstə edə bilər təcili yerinə mən tamamilə təsadüfi deyil ki, bunu edə bilərsiniz zəng daxili təcili zəng düyməsini var niyə və mən bilmirəm lakin, həqiqətən, kiçik hərflərlə təcili zəng deyir. Burada getmək. Əlbəttə iOS bu müxtəlif variantları bütün araşdırmaq. Nümayəndənin hər hansı suallar? Yine, xəbərdar olmalıdır ki, yalnız bir maraqlı dizayn model. OK, növbəti masa views nəzər salaq. A masa görünüşü əsasən bütün iOS yer üzərində öğeleri ki, siyahısı. Sizin əlaqələrin bütün vasitəsilə Flipping olduğunuzda, siz aradığınız qəbulu səhifə, və şeyi siyahısı belə bir masa görünüşü adlanır. IOS bir masa baxımından həyata keçirilməsi olduqca sadədir. Əvəzində ki UIViewController dən alçalır bir sinif edilməsi biz sadəcə demək deyil lazımdır əvvəl biz etdik kimi bir UIViewController mən nə istəyir hər şeyi, Mən UITableViewController mən nə istəyir hər şey demək ki, sadəcə tamamilə bizim üçün edilir ki, bəzi əlavə şeylər əlavə edir. Biz əsasən masa daxilində blanklara doldurmaq üçün çox az etmək lazımdır. Mən bəzi suallara cavab lazımdır masa keçirmək üçün. Mən cavab lazımdır ilk sual cədvəldə nə çox bölmələr var? Siz əlaqə app vasitəsilə Flipping etdiyiniz zaman bu cür olduğunu görəcəksiniz bu kimi təşkil sonra pansiyonlar var və siz az sub mövzu var. O hər bir hissəsində deyilir. Siz ola bilər və ya bu lazım deyil bilər. Siz nə etmək lazımdır ilk şey bir üsul tətbiq edir numberOfSectionsInTableView: tableView çağırıb. Bu sadəcə, siz nə qədər bölmələr qaytarır bu bir böyük masa görünüşü varsa bir qayıtmaq demək bilər. IOS bilmək lazımdır ki, növbəti sual necə çox satır var edir? Məsələn, bir masa görünüşü vasitəsilə Flipping edirik. Siz geçirdiğiniz mahnıları sabit sayı və ya əlaqə sabit var. Əgər, əlbəttə ki, çox deyil mənə etdiyiniz və ki iOS Profilə neçə hüceyrələri bilir bilərsiniz. Yenə bu qaytarılması 3 kimi bir şey deyə bilər. Mənim masa görünüşü 3 satır var. Nəhayət, iOS, hər bir hüceyrə kimi görünür nə bilməlidir belə nə həqiqətən nə olacaq, aşağı burada bu metodu zəng edir bu tableView: cellForRowAtIndexPath. Bu masa daxilində hər bir hüceyrə bu metodu zəng edəcək. Necə ki, bu, zəng etmək üçün necə dəfələrlə bilir? Yaxşı, siz bölməsində satır sayı daxili bildirib. Biz hüceyrələrinin hər bu zəng olacaq həqiqətən kimi şeylər edə bilər və daxilində bu edir mətn seçin və ya sağ tərəfində kiçik mavi düyməsini nə sizə. Bu hüceyrələri almaq üçün model, bu metodu istifadə etmək olacaq dequeueReusableCellWithIdentifier çağırıb. Objective-C, onların üsulu adları gülünc uzunluğu üçün çox yaxşı tanınan əslində və bu, həqiqətən baxımından nümunə bir gözəl haldır. Bu nə bu metodu yoxdur, yalnız mənə bir hüceyrə vermək istəyirəm deyir. Yalnız iOS şey. Siz iPod 100,000 mahnısı kimi bir şey varsa, nə iOS etmək istəmir 100,000 hüceyrələri ayırmağa edir Əgər siyahı üst edirsinizsə, həqiqətən, yaddaş ayırmaq lazımdır, çünki aşağı 99.000 satır ki, mobil üçün? Xeyr, kaydırarak etdiyiniz kimi siz boyunca getmək kimi ayrılması cür ola bilər, çünki. Bu sizin üçün edilir. Siz ki, bütün axmaq icra heyəti narahat yoxdur. Deyə bütün bu üsul dequeueReusableCellWithIdentifier zəng edir Mən sizin üçün yeni mobil yaratmaq gedirəm lazımdır və bu, tamam, deyir. Siz masa altında etdiyiniz və əgər Amma artıq bəzi hüceyrələr ayrılan sonra həqiqətən, zaman tezliklə lazımdır fikrində deyilik ki, masa başında Mən sizə yerinə yeni bir bölüşdürülməsi geri o biri vermək gedirəm və bu gözəl performance aiddir. Siz hüceyrələri özünüz ayrılması yoxdur. Bu mobil geri vermək olacaq. Bu sizin üçün bir hüceyrə obyekt qayıtmaq olacaq. Sonra sizə bu şeylər edə bilərsiniz mobil obyekt var. Siz mətn etiket adlanan bu əmlak ilə hüceyrə mətn bilərsiniz. Siz sağ və ya digər təsadüfi stuff ki arrow əlavə edə bilərsiniz bu digər əmlak accessoryType adlı və s və s. Nin həqiqətən artıq bir masa görünüşü həyata nəzər salaq. Mən bu layihə yaradılan zaman deyil, bir görünüşü tətbiq deyərək dən Mən, həqiqətən, burada artıq gəldi master-ətraflı tətbiqi, və əsasən bu mail app uyğun sol masa keçirmək və sonra sağ məzmunu ilə iPad. IPod və ya iPhone bu bir masa keçirmək üçün uyğun gedir. Mən başlanğıc kodu var harada. Ilk Kadr lövhəsindən nəzər salaq. Bütün bu əsasən yaradılmış, mənim üçün həyata keçirilmişdir. Bu navigation bar, nümunə hüceyrə kimi baxmaq nə mənə göstərdi və mən ikiqat, bu basın adı dəyişə bilərsiniz. Hər hansı digər UI narahatlıq orada idarə edə bilərsiniz. Başlığı fayl həqiqətən sadə görünür. Əksinə bu UIViewController olduğunu deyib artıq indi bu olduğunu deyib edirik TableViewController, belə ki, biz bütün bu masa metodları zəng etmək istəyirəm ki, bilirik. Mən təmsil etmək olur ki, bir əmlak yaratmaq istəyirik Sonrakı mənim masa daxilində şeylər. Bu cədvəl özbaşına Profilə gedir meyvə siyahısı və mən bir sıra yaratmaq lazımdır olan I meyvə əlavə edə bilərsiniz. Mənim həyata fayl ilk şey Inside mən etmək istəyirəm Mən bu seriala başlamaq əmin etmək istəyirəm edir. Mən alloc init dedi mənim meyvə array yaradılmış, və mən bunu digər 3-dən çox mübahisəli olan bir 4 şeyi əlavə edirəm. İndi ölçüsü 4 bir sıra var. Biz CS50 bu qədər sarsıntı edirik. İndi ölçüsü 4 bir sıra var. İndi mən, həqiqətən, bu suallara cavab başlamaq niyyətindəyik və alıram Bu app yaratdığı bütün bu artıq mənim üçün həyata keçirilmişdir. Mən masa baxımından bölmələr sayını yazın yoxdur. Orada artıq idi və mən blanklara doldurmaq alıram. Kaç bölmələr var? Biri. Bütün edilir. Mən neçə satır var? Bəli, mən hər meyvə bir sıra var, belə ki, bu sayı necə böyük deyir ki, hər hansı bir serialın bir əmlak var? Yəni nə çox satır var. Nəhayət, mən nə hər cell kimi baxmaq deyil demək lazımdır? Mən dequeueReusableCellWithIdentifier demək gedirəm. Yenə bu artıq mənim üçün yazılmışdır. Mən bu özümə nə yox idi, mən geri almaq istəyirəm Bu yer, bu mob. Biz hər bir hüceyrə bu eyni metodu zəng unutmayın, və burada bu arqument bu indexPath dəlil, Mən daxil oldum nə sıra deyir Burada indexPath.row aşağı demək edin bu 0 olacaq, onda 1 olacaq, o, 2 olacaq və mən bilirəm belə bu Hal-hazırda tapılanlar alıram nə mob. Mən bu textLabel əmlak istifadə edərək mobil mətn qurmaq istəyirəm mənim meyvə array daxilində getmək və almaq Hər bir sıra müvafiq obyekt. Bu simli deyil, mən indi müəyyən alıram simli üçün mətn əmlak. Mən başqa bir şey edə bilərsiniz. Mən də hüceyrələrin hər bir hadisə handler üzv ola bilərsiniz Mən bu hüceyrələrin hər kran belə zaman bu didSelectRowAtIndexPath, bu, mənim üçün deyilən olacaq belə sadəcə bu müəyyən İndi nə idarə edə bilərsiniz daha mobil kran və zaman, biz mobil tapped olan keçən edirik belə ki, bizim hüceyrələrinin bütün bu eyni hadisə handler yenidən istifadə edə bilərsiniz. Yenə bu iOS mənim üçün edir bir şeydir. Digər annoying popup göstərmək edək sadəcə siz ki, bir şey bir şey seçilmiş deyir sıra obyekt olacaq. Mən bu çalıştırdığınızda, mən bu gözəl masa görünüşü gedirəm Bu meyvə hər biri üçün bir sıra ilə, və əgər mən bir kran o nə mənə deyir. Mənada etmək? Nin bir app bir az daha kompleks inşa edək, siz pomidor seçilmiş tıklayarak kimi çox deyil. Bu storyboarding haqqında gözəl hissəsi yalnız fərdi Bookmark dizayn ekranlar kömək etmək niyyətində deyil olunur bu da bizim bütün app sarmalamaq kömək olacaq biz bina olacaq son app, bu gözəl idman xəbərləri oxucu və buna çox ekranlar var olacaq və mən həqiqətən təmsil edə bilər Kadr lövhəsindən bu çox ekranlar hər və mən kiçiltmək və yüksək səviyyədə mənim app bilərsiniz. Mənim eskizlərinin yeni bir element daxili yaratmaq üçün bu Interface Builder daxilində həqiqətən sadə. Mən bu başqa bir ekran əlavə etmək istəyirsinizsə, misal üçün, Mən ilk, Apple çox sevir ki, pinch zoom ilə zoom edə bilərsiniz və aşağı burada bir düyməsinə axtarmaq əvvəl və bir düyməsini sürükle Yeni ekran yaratmaq istəyirsinizsə, Mən, həqiqətən, yalnız sürükleyin və açılır bütün görünüşü nəzarətçi, bu seçə əgər, burada üzərində çəkmək hey, başqa ekran, və indi bu eskizlərinin faylı istifadə edərək, Mən app daxilində ekranlar bütün bilər, mən zoom edə bilər və onlar qarşılıqlı necə oldu. Bu hələ qarşılıqlı deyil. Bu 2 ekranlar qarşılıqlı olan yol münasibətləri müəyyən edir. Siz əsasən, bu düyməsini basın zaman, bu ekran demək olar Mən sizə bu yeni ekran üzərində uçmaq istəyirəm. Deməkdir ki, arasında əlaqələr bu cür var  ilk ekran və ikinci ekran. Siz əsasən ki düyməsinə ikinci ekran üçün arrow lazımdır Mən getmək istədiyiniz bu düyməsini basın zaman ki ki. Biz tıklayan və bu vasitələri müəyyən sürüklənəcəklər nəzarəti kimi bu segues müəyyən eyni şey olacaq. Biz nümunə görmək və biz, həqiqətən, keçid qarşısında olacaq bir ekran digər iOS bu metodu zəng etmək üçün kifayət qədər gözəl prepareForSegue adlanır və biz başlamaq bilərsiniz bu bir app başqa data göndərilməsi. Məsələn, biz baxmaq üzeresiniz əsasən bizə imkan verəcək leagues və bölmələri tərəfindən beysbol komanda filter. Mən bir liqa seçin, məsələn, mən keçid etmək istəyirəm Mən bölmələrinin bütün bilərsiniz mənim növbəti ekran ki, liqa və ya bütün müxtəlif qrupları. Mən nə komanda siz göstərmək lazımdır ki, ekran göndərmək lazımdır. Mən burada bu metodu istifadə etmək gidiyorum ki etmək. Nəhayət, iOS yalnız bir təsadüfi nöqtəsi. Siz məlumatın istəyirsinizsə əsas data adlanan bu şey var hansı faktiki olaraq işləmək mürəkkəb növü. Ayrıca, veri SQL istifadə edə bilərsiniz ki, daha, ilə işləmək üçün daha çətin tərəfi gözəl lakin cür edir lakin iOS də, əmlak siyahıları adlı bu həqiqətən sərin şeyi dəstəkləyir və əmlakının siyahısının yalnız əsas dəyər cüt təmsil bir fayl. Siz düymələri bir siyahısını müəyyən, və bu əsas bir sıra olacaq deyirlər. Bu əsas əsasən edə bilərsiniz bir şey simli olacaq, və JSON siz, bir əmlak siyahı daxilində edə bilərsiniz və bu, həqiqətən, gözəl bizə data ilə işləmək üçün imkan verir. Məsələn, mən yaratdığı bu Teams.plist var. Yeni plist fayl yaradılmışdır və mən aşağı qazmaq bilər. Bu lüğət, bu lüğət, bu, simlər var və bu bir JSON sənədin gözəl qrafik təmsil edir və ya əsas dəyər cüt yalnız bir set və bu mənim app daxilində iş olacaq ki, data deyil. Ilk buraya gəlsin. Biz indi daha çox faylları. Amma ilk Kadr lövhəsindən üçün buraya gəlmək imkan verir. Kadr lövhəsindən burada əgər mən zoom edə bilərsiniz out- İndi bu mənim app axını olduğunu görə bilərsiniz. Mən ilk bu ekran başlamaq üçün gedirəm. Mən bu ekran aşağı qazmaq gedirəm və mən bu ekran aşağı qazmaq gedirəm, və biz burada görə bilərsiniz ki, mən növ əgər bu oxlar buradan burada gedən var ətrafında bu bir hərəkət Mən bir az zoom əgər və mən arrow müəyyən yol idi, və bu görünüşü nəzarətçi üzərində gəlsə, və burada bir hüceyrə, ve siz mobil kran mən demək istəyirəm ki, Mən sizə bir ekran üzərində uçmaq istəyirəm. Mən sadəcə, nəzarət basıb saxlayın bilərsiniz bir az üzərində hərəkət, nəzarət basıb saxlayın bu hüceyrə üzərində sürükleyin və gidelim. Və burada biz istifadə etmək istəyirəm ki, keçid nə demək? Siz push deyirlər ki, slayd şey istifadə etmək istəyirsiniz? Siz altına qədər uçmaq istəyirsiniz? Bu modal deyirlər. Və bir dəfə mən bu bir basın, bu, mənim üçün bu arrow çəkmək olacaq və mən, həqiqətən, mən qrafik bu düyməsini basın zaman nə olar ele olduğunuz deməkdir. Mən, həqiqətən, bir ekran növbəti bir sürüşdürmək üçün hər hansı bir kod yazmaq vermədi. Mən Interface Builder bu vizual daxilində müəyyən edilmişdir. Mən bu arrow basın varsa, biz bu şey bir ad verdi ki, görürük. Mən bunu showDivisions adlanır və bu bilirəm edə bilərsiniz, belə ki, nə keçid haqqında baş və niyə yalnız bir Saniyə biz görəcəksiniz. Yəni mənim app müxtəlif ekranlar qədər simli etdik bilərsiniz. Bu bir düyməsinə, misal üçün, daha çox bir masa görünüşü olsaydı, Mən növbəti ekran üzərində sürükleyin, düyməsini basın nəzarət edə və mən naviqasiya şəkildə edə bilərsiniz. Həqiqətən tez, biz MasterViewController gəlmək əgər, daha, biz sadəcə şeyi bir siyahısını müəyyən olacaq olan masa görünüşü göstərilir. Burada mən ki plist fayl etmək istəyirəm dedi alıram və mən sizə bir lüğət halına qədər yük istəyirəm və bir dəfə siz lüğət var, yenidən həmin suallara cavab gedirəm. Burada bölmələr sayı. Biri, hər liqaya satır, hər bir hüceyrə mətn var s birinci, ilk liqa, ikinci liqada və ya olmalıdır. Nəhayət, mən, biz yalnız prepareForSegue adlı gördüm ki, bu metodu istifadə gedirəm və bu mən basın zaman atəş olacaq ki metodudur o satır biri və buna görə də ki, keçid Aktivləşdirmə Mən oxları ilə müəyyən edir. Bu çox ola bilər ki, deyib bir ekran digər münasibətləri. I 2 düymələri və hər düyməsinə müxtəlif ekran götürür edin Mən hər düyməsinə üçün 2 segues, 1 üçün gedirəm. Amma bu prepareForSegue təkrar istifadə olunacaq, təkrar edir müxtəlif əlaqələr hər biri üçün, belə ki, bir yol lazımdır o deməkdir ki, Siz ilk düyməsini basın və ya ikinci düyməsini basın əgər müəyyən edir. Hesab edirəm ki, segue bir adı, bu showDivisions verdi zaman saxla Mən indi bu aktivləşdirilmiş ki segue bilirik ki, necə. Mən istəyirəm demək istəyirəm ki, Mən yalnız edib nə anlamaq istəyirəm və ki, almaq, mən Seçilmiş sıra üçün indexPath mənə deyə bilərsiniz Mən yalnız tıklayan olduğu indexPath xatırlayıram yalnız deyir və sonra mən gedirəm yerləşir anlamaq istəyirəm demək istəyirəm. Bu destinationViewController ki, segue bir əmlak var. Yəni, mən gedirəm ekran var belə mən gedirəm ekran DivisionsViewController adlanır bilirik ki, Hesab edirəm ki, sinif yaradılmış, çünki və indi mən d.divisions demək əgər Mən indi getmək haqqında Ben görünüşü nəzarətçi əmlakın müəyyən edirəm. Bu bir ekran bir ekran data göndərilməsi alıram necə. Məhz bu DivisionsViewController baxaraq Burada görə bilərsiniz ki. h fayl var ki, əmlak bölmələri və mən əsasən populating alıram nə ki, mən müvafiq bölmələrinin tapılanlar edirəm ki, bilirsiniz necə mən tıkladım və yenidən ki, liqada faktiki masa görünüşü yalnız cavab olduqca çox eyni görünür 3 sadə sualları, habelə müəyyən Siz növbəti ekran hərəkət zaman nə baş verir. Burada başqa şeylər yalnız bir neçə. Siz burada üst hiss ki, daha çox # daxildir söyləyərək İndi # idxal dedi alıram. Bu yalnız bir Objective-C şeydir. Idxalı, əsasən daxil bir gözəl versiyası və məsələn, biz bu sinif olduğunu bilmək lazımdır Mən yalnız DivisionsViewController deyə bilmərəm. Biz. C fayl standardio.c daxilində hashtag olmasaydı derleyiciyi printf nə yox idi. Eynilə, mən DivisionsViewController idxal olmayan derleyiciyi həqiqətən DivisionsViewController nə heç bir fikir var. Yalnız fərqli. M faylları daxilində siz idxal əmin olun əmin olun müvafiq. h faylları belə compiler neler bilir. Nəhayət, nə Apple nəhayət, bir web görünüşü istifadə bəzi data Profilə olunur deyil və belə bir web görünüşü embed biləcəyi bir obyekt Sizin app daxilində bir az web browser. Siz nə etmək lazımdır Bütün web browser bir URL təchiz olunur Mən, mlb.mlb.com getmək istəyirəm və bu, mən hər komanda üçün ana səhifəsinə daxil edə bilərsiniz necə və bu URL keçən ilə , web baxımından mənim üçün bu bilərsiniz, və ətrafında baxa bilərsiniz və simulator bir tərəfindən istifadə olunur. İndi bu mənim plist gəldi. Mən bu basın, bu da mənim plist gəldi və bu sürüşmə ele edilib o segues müəyyən. Mən bu basın və daha bir və indi burada belə ki, yalnız kimi, mənim UIWebView edir burada yalnız əlaqədar ki, URL üçün veb var və Mən dəli bir şey idarə etmək yox idi. Bu web page keçirmək üçün necə. Burada bu geri düyməsinə kimi şeylər mənə də verilir tamamilə pulsuz I segues istifadə edərək, bu əlaqələrin müəyyən etdik çünki. Hər hansı sual? Bəli. [Tələbə] Beləliklə, siz alloc istifadə edərkən, pulsuz bir şey heç vaxt? Məhz, siz alloc və init zəng zaman onu azad etmək yoxdur. IOS üçün ki, bütün idarə etmək üçün gedir. Bu gözəl, və siz hər hansı bir qaydalarının pozulması deyilik. Bəli. Siz ekranda uyğun ola bilər ki, daha çox qrupları daxil idi [Tələbə] Əgər avtomatik olaraq əlavə etmək lazımdır ki, bir şey bir diyirləyin seçimi var, ya olacaq? Mən daha çox komanda olsa Məhz, məsələn, avtomatik idarə ki, Mənim üçün scrolling və bütün icra narahatlıq böyük masa da mənim üçün tamamilə idarə olunur. Digər suallar? Bu kodu Bütün olunub olacaq. Biz növ, daha kiçik detalları bir az üzərində cilalanacaq lakin kimi şeylər web keçirmək üçün bəzi xassələri qəbulu yalnız Apple sənədlərin gəzən ilə əldə edə bilər ki şeyi, həqiqətən ki, həqiqətən gözəl salınmışdır. Onlar nümunə apps çox və misal bulges var müxtəlif API, belə ki, mütləq siz həmin diqqətlə oxumaq. Yalnız bir faydalı bağlantılar nəzər edə bilərsiniz. Bu bir lazımlı sənədlərin təlimatlar var. URL'leri kütləvi var, onlar qısaldılmış edirik. Bu ilk sənədlərin bütün kitabxana edir. Az axtarış bar siz yazaraq düyməsini başlamaq əgər, var siz bir düyməsinə ilə edə bilərsiniz bütün şeylər haqqında bütün məlumat verilməsi başlayacaq. Mən də Cədvəl View program Guide daxil etdik. Bu, daha çox ətraflı masa views emal dinamik hüceyrələri və ya edit hüceyrələri əlavə və ya aradan qaldırılması kimi şeylər necə. Necə ki, bunu sizə göstərir ki, Apple nümunə apps çox var və nəhayət, bu son bir, İnsan Interface Təlimatları edir və bu, əsasən UI komponentləri bəzi müzakirə edir kimi şeylər 4 piksel 4 piksel ki, bir düyməsinə yoxdur. Bu pis bir fikir var, və Apple nə istəyir ki, başqa şeylər yaxşı dizayn təşviq etmək. Hər keçən sualları biz başa əvvəl? Bütün sağ, mütləq müzakirə xüsusi yazıları gedən-we're çekinmeyin. Biz iOS bir lazımdır, belə ki, mütləq ki, istifadə çekinmeyin. Siz layihələr sizin sinif yoldaşları ilə işləmək istəyirsinizsə və ya bir təsadüfi iOS məhsulları anlamağa kömək mənə e-poçt çekinmeyin, və mütləq bütün kodu online çünki diqqətlə oxumaq yalnız vaxt maraq biz növ daha çox cilalanacaq şeyi finer dənəvər ətraflı. Lakin əgər, sonra yaxşı sizin iOS layihələr üzrə uğurlar, mən biz ümid App Store apps böyük axını. [CS50.TV]