Tianyu LIU: Hey, necə hər kəs gedir? Bu iOS App edir obyektiv c Seminarın proqramlaşdırma. Və mənim ad Tianyu Liu edir. Mən indi bir Lowell kiçik deyiləm kompüter konsentrə. Belə ki, bu seminarda Ben gedən uşaqlar öyrətmək üçün bir app etmək üçün necə haqqında bir az. Yay, bunun üçün heyecan almaq. Biz hətta dalğıc başlamaq əvvəl Belə ki, faktiki proqramlaşdırma tərəfə, haqqında danışmaq tez yalnız həqiqətən edək niyə bir iOS app qurmaq istəyirəm bilər? Nə iOS belə zəhmli deyil? Ilk problem Belə ki, ilk bizim üçün olduqca zəhmli deyil şey, xüsusilə CS50 kimi tələbə ki, iOS Məqsəd C. Yaxşı istifadə var Swift adlı yeni dil, lakin biz fikrində deyilik Bu seminarda istifadə. Orada, Swift istəyirsinizsə bu barədə müstəqil seminar edir. Amma Məqsəd C əsasən C. Mənası bir superset C istifadə ki, hər şey edə bilərsiniz Məqsəd C dilinə tərcümə çox asanlıqla. Daha sonra, həqiqətən görə bilərsiniz kimi bir çox əsas sintaksis var var əsasən eyni, C və Objective C. Belə ki, Siz CS50 qəbul ildən Bu qədər uzaq, siz artıq ən azı 40% Məqsəd C bilirik. Həmçinin, Apple həqiqətən var IOS üçün möhkəm API. Həqiqətən crazy var şeyi ilə edə bilərsiniz. Bir kimsə həqiqətən bir iOS app yaratmışdır nəzarət avtomobil, üçün hansı olduqca maraqlıdır. Yəqin ki, bir vertolyot daha maraqlı edir. Amma ki, necə güclü iOS API ola bilər. Və siz ola bilər İndi fiqurlu, yığın daşqın yəqin ki, biri ən əhəmiyyətli online resursları sizin üçün. Və yaxşı xəbərlər, hər bəlkə bir problem bina isə hesab sizin Məqsəd C yekun layihə, bir yığın daşqın cavab ehtimalı var. Bu, sadəcə zəhmli deyil. Bundan əlavə, iOS həqiqətən bir platforma Siz böyük çata bilərsiniz az səy ilə tamaşaçı. Bu Android kimi deyil Hər şey olduqca parçalanmış. Hər şey iOS vahid deyil. Və kimi uzun siz yaratmaq kimi iPhone üçün bir app, Siz çox asanlıqla port iPad ki, iPad mini, və ya müxtəlif iPhone ölçüləri. Bütün bunlar, həqiqətən, əlverişlidir. Və yalnız həqiqətən yaxşı Dostların etkileyici üçün. Siz yalnız bir iPhone aça bilər və, hey sizin dost demək Bu Mən app edir. Siz hər hansı edə bilərsiniz gözəl masa üstü apps. Bütün hüquqlar, indi həqiqətən almaq imkan dil Məqsəd C. daxil Belə ki, niyə biz başlamaq deyil bəzi həqiqətən əsas sintaksis. Mən Məqsəd əvvəl qeyd etdiyim kimi C C. əsasən superset var Belə ki, əsas sintaksis bir çox əslində eyni. Bir dəyişən elan və iki dəyişənlərin birlikdə əlavə Biz Mario olduğu kimi dəqiq deyil. Burada yeni heç bir şey. Loop üçün Eynilə, lodger və vəziyyəti də eynidir. Siz yalnız loop üçün nə edə bilər Mario [Işitilemez] ilə görmüşlər. Və şərait edə bilərsiniz kimi nə Əvvəlki p dəstləri edirik. Lakin, Objective C , C tamamilə deyil və bir şey var ki, qəribə növ bu barədə deyil. ilk biri olan var ki C proqramlaşdırma bunu, adətən zəng daxil və sonra kitabxana adı. Amma obyektiv C ki, idxal çağırırıq. Ümumiyyətlə, funksionallıq deyərək yalnız müxtəlif adlar. Və strings var əslində bir az qəribə. Siz ilk olduğunu görə bilərsiniz cür qəribə şey Siz olduqca weird-- var ki sorry olduqca qəribə NS var burada olun. Və ikinci şey bu cür qəribə Əvvəl əlaməti bir var həqiqətən simli elan. Belə ki, işarəsi əsasən bildirir bir string simli deyil ki, bu, həqiqətən bir obyekt deyil. Biz izah olacaq sonra belə deyil Panik Əgər deyilsə o deməkdir ki, nə başa düşürük. Və konsol çap bir az müxtəlif çünki biz printf zəng C, lakin Məqsəd C biz [işitilemez] çağırırıq. Siz nə merak bilər. Bu, printf əsasən yalnız bir müxtəlif dil. Məhz həmin istifadə, eyni funksionallığı. Yaxşı çıxır ki, Objective C əslində bir ns demək olar ki, prefiks var Hər şey, hər əsas data növü, nsdictionary, NSArray, NSString. Səbəbi ns ki, olan həqiqətən Next Step dayanır, olan bir şirkətdir ki, Steve Jobs, təsis etmişdir bir şirkət olan harada dil Məqsəd C doğulur. Belə ki, bu əsasən ənənədir. Mən bunu bir az olduğunu bilirik qəribə, lakin Apple var. Daha weirder Belə ki, bir şey daha bir funksiyası elan edir. Bu biz nə çox fərqli , C görmək burada, həqiqətən, çünki Artıq C kimi baxmaq deyil. Siz burada nə bu bir güllə nöqtə deyil yol, bu bir minus əlamətidir. Siz eksi mötərizə var etibarsız və sonra funksiyası adı. Yalnız əgər deyək biz sonra salam dünya var qaytarılması növü etibarsız olacaq biz heç bir şey geri çünki. Həqiqətən qəribə olur Siz etdiyiniz zaman ki, bir çox parametri olan Eyni funksiyası daxil keçən ki, Burada göstərildiyi kimi, həqiqətən qəribə olacaq. Biz bir üsul adı, çağırıldı addInt [işitilemez] və biz bir parametr keçən edirik. Amma bundan sonra, biz daha metodu adı zəng. Və sonra keçən edirik İkinci parametr. Bu, həqiqətən, bir az qəribə deyil lakin bütün bu funksiyası bəyannamələrin bu kimi eyni model edin. Biz başlamaq üçün bir minus işarəsi var. The eksi plus əlaməti ola bilər bəzən metodu nə cür əsasında edir. Əlaqə əsasən funksiyası üçün başqa bir ad. Və biz olacaq izah sonra zaman Biz obyekt haqqında söhbət edirik yönümlü proqramlaşdırma. Siz ilk geri daxil , daxili parantez növü sonra metodu adı gəlir. Siz bir parametr keçən edirik. Və daha çox parametrləri varsa Siz metodu adı uzatmaq lazımdır və əsasən daha çox bir şey yazmaq. Istədiyiniz bir şey ola bilər. Bizim halda bu ilə var. Amma demək olar sonu, və ya və ya və ya Siz istədiyiniz hər hansı abc tam bar. Və sonra sonra sen parametri b keçən. Bu, həqiqətən qəribə deyil konqres lakin biz Apple istədim niyə görmək olacaq çox tez bunu. Belə ki, necə funksiyası zəng edirsiniz? Məqsəd bir funksiyası zəng C də C. fərqli Əslində, çağıran Objective C funksiyası Əgər kimsə söhbət etdiyiniz kimi daha çox. Burada özünü var olan bir obyekt adlanır. Siz əsasən izah edirik demək özünü etiraz "Hello World!" Ki, funksiyası zəng üçün necə. Bir obyekt və metodu adı bir-biri ilə birlikdə. Bu harada qəribə uzantısıdır üsul adı həqiqətən dövrəyə girir. Ikinci misal baxaq. Biz yalnız deyilən bir üsul müəyyən addInt ilə blah blah blah. Zəng zaman bu halda Belə ki, xüsusi [? Mesaj?] gedir özünü addInt kimi baxmaq: 10: 2. İngilis kimi səslənir. Funksiyası olsa da funksiyası bəyannamə, qəribə deyil Məqsəd C-nin point üsul bəyannamə model, Zəng zaman ki, funksiyası və ya üsulu faktiki ingilis kimi səslənəcək. Belə ki, çox asan deyil siz onu almaq bir dəfə. Xüsusilə bu halda, harada əsasən bilər funksiyası adı olduğunu görəcəksiniz sort özünü sənədləşdirilməsi. Siz hər hansı bir ehtiyac yoxdur daha izahat görmək dəqiq nə baş, nə dəqiq bir parametri edir. Kənarda Going, bir az danışmaq edək obyekt yönümlü proqramlaşdırma haqqında bit. Obyekt yönümlü proqramlaşdırma deyil fundamental proqramlaşdırma biri ki, texnika və ya nümunələri Məqsəd C. Məqsəd C istifadə Məqsəd C deyil adlanır C, həqiqətən yaxşı səbəbdən. Biz daxil əvvəl Belə ki, Məqsəd C syntax, Nin həqiqətən tez baxaq dəqiq nə bir obyekt deyil. Biz yəqin ki, bir şey etdik əvvəl obyekt kimi olan Siz struct adlanır bir ağac və ya bir bağlı siyahı həyata və ya [? cəhd edin. ?] Belə ki, bu əsasən bir struct kimi, lakin daha güclü daha var. Obyekt metodları və xassələri vardır. Üsulları əsasən funksiyaları. Əsasən ki, fəaliyyət göstərir müəyyən bir obyekt üçün xüsusi. Və xassələri əsasən sahəsində struct daxil. Hər bir obyekt üçün Belə ki, bəzi əmlak bəzi dəyişənlər var obyekt xüsusi. Və biz bəzi funksiyaları var da obyekt xüsusi. Və funksiyaları üsulları deyilir və dəyişənlərin xassələri deyilir. Bu, sadəcə bir xülya adı var. Siz əslində isə, hər bir görünüşü Bir iOS app açmaq zaman, bax , yalnız Twitter və ya Facebook deyək Gördüyünüz hər bir görünüşü bir obyekt deyil. Və hətta bütün app edir bir obyekt ilə başlamaq üçün. Çox maraqlı bir anlayışdır. Və niyə biz obyekt istəyirəm proqramlaşdırma yönümlü? Beləliklə, siz təsəvvür edə bilərsiniz zaman ki, Bu proqram olduqca mürəkkəb olur. Yalnız siz olduğunuzda deyirlər şahmat taxtası həyata, məntiq gedir həqiqətən çətin ola bilər. Siz 36 fərqləndirən var ədəd ki, əgər belə ki, bütün məntiq yazmaq istəyirəm Şahmat 36 müxtəlif ədəd, ki, bir çox olacaq müxtəlif funksiyaları və dəyişənlərin. Bu problem bir çox var. Və yəqin ki, bir yazmaq olacaq müxtəlif üsul və ya müxtəlif funksiyası üçün parça hər biri üçün məhz onlar nə nəzarət. Lakin əgər obyekt yönümlü proqramlaşdırma, bu ədəd bütün xülasə edilə bilər bir obyekt. Və obyekt bəzi ümumi olacaq parça nə cür kimi xassələri, Bu nədir? Bu nə rəng olar? Necə hərəkət edə bilər? Və şəkildə çox var Bunun məntiqi sadələşdirilmiş. Belə ki, yalnız bir həqiqətən yaxşı yoldur mürəkkəb proqramları etmək, və iyerarxik əlaqələr proqramı çərçivəsində, çox sadə. Biz görmək olacaq kimi niyə çox tez zaman biz, həqiqətən, edirik Biz, həqiqətən, olduğunuzda proqramlaşdırma S kodu edir Daha sonra sessiya proqramlaşdırma. Yaxşı ki, əlavə, obyekt yönümlü proqramlaşdırma fun bir çox deyil. Siz öz obyekt dizayn var. Siz nə dizayn var Bu özünüz kimi görünür. Bu bir düzgün cavab yoxdur. Və tamamilə maraqlı deyil. Belə ki, obyekt yönümlü proqramlaşdırma, iki əsas anlayışlar sinif və instansiya olacaq. A sinifi əsasən obyekt üçün bir şablon. Və bir instansiya əsasən müəyyən bir obyekt. Yalnız bir cookie edirik deyirlər. Bu halda, hər bir Siz, həqiqətən, ilə başa cookie bir obyekt olacaq. Amma cookie boşqab siz yandırmaq üçün istifadə bütün cookies bir sinif olacaq. A sinifi əsasən şablon edir. Və instansiya müəyyən olacaq obyekt ki, sinif yaratdıq. Və bir instansiya yaradılacaq sinif bəyannamə əsasında, biz sonra slaydlar görəcəksiniz. Belə ki, həqiqətən, həqiqətən, bir bunu bildirin tez misal [işitilemez]. Biz elan edirik deyirlər Bir pişik üçün bir obyekt. obyekt yaxşıdır lazımdır cat sinif olmalıdır bəzi xassələri və üsulları var. Xassələri olmalıdır hansı sinif yaxşıdır cat olmalıdır? Məsələn, rəng, yaş və cins, o dəyişənlərin olacaq Hər pişik üçün xüsusi edir. Və o, bəzi şeylər var bir pişik təsvir etmək üçün istifadə edir. Metodu hansı, və ya bir pişik nə edə bilər? Bəzi tez nümunələri təqib olacaq siçan, balıq yemək və ya yalnız miyavlamak. Bu, həqiqətən sürətli cat sinif nümunə. Və həqiqətən xüsusi cat obyekt pişik olacaq Biz müəyyən harada rəng, yaş və cins. Bu halda, bizim obyekt artıq bir sinif artıq. Biz sinif şablon surəti və Biz hər bir konkret məlumat daxil xüsusi obyekt müstəqil etmək. Və zəng zaman bir obyekt daxilində üsul, Yalnız obyekt miyavlamak zəng siz yalnız yaradılmış pişik deyil. Yəqin ki, siz çap edəcək "Hello World kimi bir şey! Meow. " Pretty cute. Bütün hüquqlar, olduğuna görə yalnız imkan bəzi detalları nəzərə almaq və məhz nə görmək iOS proqramlaşdırma meydana tərcümə. IOS hər bir proqramlaşdırma Belə ki, class iki faylları həyata keçiriləcək. Bir fayl, burada olan interface adlanır. Başqa bir fayl, burada olan həyata keçirilməsi adlanır. Adətən interface extension.h olacaq biz C kitabxanalar gördük. Və həyata keçirilməsi fayl extension.n gedir. Bu qəribə növü var. Amma heç bir var, c həqiqətən n deməkdir arasında fundamental fərq iki. Bu halda, belə ki, biz istəyirik ki, görə bilərsiniz obyekt: interface, Cat elan. Bu miras adlanır. Biz əsasən miras edirik object sinif pişik sinif. Belə ki, hər əmlak və üsul idi ki, əvvəl obyekt sinif müəyyən avtomatik müəyyən olunacaq bir pişik sinif həmçinin. Bundan əlavə, biz rəng müəyyən, cins və yaş, üç dəyişənlərin. Bu, həqiqətən kimi görünür Siz əvvəl həyata bir şey. Bu struct kimi görünür. Bu əsasən sintaksis struct elan üçün, ki, tamamilə doğru deyil. Mən əvvəl qeyd-ci ildən, fərq struct və obyekt biri fundamental fərqlər bir obyekt metodu var ki, isə struct yalnız dəyişənlər var. Belə ki, xassələri əlavə və ya Biz obyekt üçün yaratdıq dəyişənlərin, biz bir üsul daxil. Yalnız biz burada demək bir miyavlamak iki üsulları, başqa bir təqib siçan edir. Biz yəqin ki, keçən bir olmaq istəyirəm əvvəlki metodu əsasında parametri Bəyannamədə model. Siz yəqin ki, bir siçan keçən olmaq istəyirəm. Və yəqin ki, lazımdır Bir bool signifying qayıtmaq Sizin pişik uğurla var Siçan tutdu və ya deyil. Bu interfeys, lakin biz görürük ki, həqiqətən, interface bir şey deyil. Bu, sadəcə bir proqram deyir exists-- nə nə cat sinif mövcuddur. Belə ki, üçün Bu proqram bir şey etmək, Biz həyata keçirilməsi faylları lazımdır. Odur ki, biz bunu ilk şey təbii ki, biz interface idxal. Biz interface idxal sonra, Biz üsulu müəyyən edir. Yalnız burada miyavlamak deyək yalnız çap "Hello World!" konsol. Və həyata sonra Fayl biz olduqca çox tamamlayın. Bu əsasən bir sinif Bir sinif üçün bəyannamə. Belə ki, indi sual olur necə bir dəyişən elan edə bilərəm? yol bir yaratmaq üçün bir sinif istifadə Məqsəd C obyekt yazılır. Siz ilk daxil Bu, bir pişik göstərici Objective C hər obyekt çünki nəhayət bir göstərici kimi həyata keçirilir. Və sinif zəng, onlara zəng əsasən malloc olan alloc kimi, əməliyyat sistemi izah ki, bu obyekt üçün yaddaş yer lazımdır. Bundan sonra siz bir obyekt var artıq və yalnız başlamaq. Bu yalnız konvensiya deyil. Mən bir az qəribə bu bilirik, lakin Bu Apple məhsulları yoxdur əslində necə. Xassələri olunur Atama həqiqətən, olduqca sadə. Bu çox oxşar zaman nə edirik Bəzi xüsusi təyin edirik struct daxilində sahədə. Siz yalnız dəyişən var , əmlak adı adı, və ona xüsusi dəyər təyin. Və bir üsul zəng çox oxşardır. zəng bir üsuldur əsasən Mən danışmaq nə Məqsəd C. hər hansı bir üsul zəng üçün Siz bir obyekt keçən edirik Bu halda o, myCat olacaq və üsul adı keçən edirik. Siz obyekt söhbət etdiyiniz kimi, Siz miyavlamak lazımdır myCat. Bu olduqca maraqlı deyil. Bundan sonra, bir var daha əsas dizayn model Biz haqqında danışmaq lazımdır ki, faktiki S kodu əvvəl. Bu dizayn model adlanır Tədbirdə proqramlaşdırma idarə. Bu da çox yəqin ki, bir iOS proqramlaşdırma fundamental fikir. Beləliklə, siz yəqin ki, dəqiq bilmirəm Tədbirdə idarə proqramlaşdırma edir lakin bu, həqiqətən ki, qorxudan deyil. Yaxşı əslində, var artıq əvvəl həyata. Bu yəqin ki, var xətləri biridir artıq ötən [Işitilemez] yazılı CS50, google.maps.event.addListener (marker, )} {) Funksiyası ("klik" :. Siz bu xətt zəng etməklə mahiyyətcə kompüter izah deyilən hadisə zaman ki, , Marker olur "klik" ki, funksiyası istifadə edin. Bu çox fərqli Siz mario.c nə. Mario.c siz yalnız proqram run bir dəfə, bir çıxış verir, və siz tamamlayın. Bu növ kimi bir shot proqramları. Hadisə idarə proqramları çox çox fərqlidir. Facebook bir əgər, bu təsəvvür edək shot proqram, həqiqətən, yaxşı deyil. Siz yalnız Facebook getmək bir və bunu edir. Bu bəzi çıxış verir və geri var, heç vaxt. Daha çox bir şey var, heç vaxt. Belə ki, burada, xüsusilə Biz istifadə model Tədbirdə ki, idarə Hər funksiyası olacaq əsasında tutuldu nə Tədbirdə baş verib. Məsələn, biz varsa Bir düyməsini basın və biz müəyyən düyməsini tıklandığında zaman ki, adlı funksiyası zəng "Hello World!" Beləliklə, biz, həqiqətən bilər funksiyası məntiq idarə yüksək çevik şəkildə axır. istifadəçi və ya bir funksiyası zəng edə bilərsiniz artıq adlanır. Bu tamamilə users nə əsasında. Beləliklə, biz bu olduğunu görə bilərsiniz mario.c daha həqiqətən daha yaxşı. Və yaxşı xəbər bu ki, həqiqətən yeni bir anlayış. Siz uşaqlar artıq görmüşük son problem müəyyən. Belə ki, Objective C var Üç müxtəlif diaqramları Tədbirdə idarə proqramlaşdırma üçün. İlk diagram edir Hədəf hərəkət adlanır, burada bir düyməsinə lər bir funksiyası ilə basın. Siz basın zaman yalnız, deyirlər bir düyməsinə, bəzi funksiyası zəng. Bu, çox sadə hədəf fəaliyyət göstərir. ikinci biridir həqiqətən ağır bir, Bu protokol nümayəndə heyəti deyirlər. Biz izah olacaq böyük ətraflı sonra. Və üçüncü yol xəbərdarlıq edir. Bu, həqiqətən deyil çox əhəmiyyətli qədər Biz narahat etdiyiniz kimi, şans, çünki Siz bildiriş istifadə etmək olacaq ki, son layihə olduqca aşağı. Beləliklə, biz bir hissəsi keçmək olacaq. Və biz dalış olacaq protokol nümayəndə heyəti daxil. Belə ki, məhz protokol nədir? Və ya bir heyət məhz nədir? Ilə başlamaq üçün protokol haqqında danışmaq edək. Protokollar hadisələr başqa bir şey deyil. Lakin bu hadisələr verilir Apple ilə başlamaq üçün. Məsələn, mən deyiləm Siz nə qədər tamamilə əmin uşaqlar Apple orijinal istifadə app poçt və ya əlaqə, lakin hər zaman hərəkət masa və xüsusi mobil basın masa, bir hadisədir. Və etmək istəyirsinizsə Özünüz hadisə, Bu, həqiqətən bir az çətindir. Belə ki, Apple hətta sizə verdiyi Yalnız birbaşa istifadə edə bilərsiniz, belə ki, Tədbir öz bir şey etmək. Protokollar həqiqətən həqiqətən, həqiqətən, geniş istifadə Obyektiv C. Yaxşı da Hətta hər bir app Bir şey tutdu app nümayəndəsi var. Incə daxilində bütün edir app loading üçün protokolları. Yalnız var deyirlər app bir hadisə yük etdi. Siz var sonra nə lazımdır bir app yaradılmış, siz app açmaq sonra, sonra sonra app yaxın, və ya Əgər yuxu iPhone qoymaq. Bu bütün hadisələr artıq sizə verilmişdir. Və ilk bu hissəciklərin daxilində heç bir həyata olacaq. Apple yalnız bu funksiya sizə deyib ki, bir hadisə olur nə olacaq, ancaq ki, nə funksiyası size tamamilə. Nümayəndə heyəti əsasən sinif izah bu protokolları idarə lazımdır. Bu bir az var confusing, lakin olacaq Biz bunu daha aydın hərəkət s kodları. Protokol nümayəndə heyəti həqiqətən bir deyil mənada yüksək sağlam mexanizmi ki, nümayəndə heyətini əgər xüsusi sinif, biz mahiyyətcə idarə edə bilərsiniz hadisələr bütün növ Biz hər hansı bir sinif istifadə edərək, çox rahat vasitədir. Belə ki, bir tez misal üçün protokol nümayəndə heyəti Mən yalnız haqqında danışdı nə olacaq. Bu protokol xüsusi adlanır tableview [işitilemez] rol seçin [at? index?] [? keçmiş. ?] Belə ki, bu tutuldu ki, hadisə zaman həqiqətən xüsusi kran Sizin tableview mobil, yalnız sizin mail deyək və ya əlaqə app. Funksiyası Inside var idi ilk heç bir şey bunu. funksiyası deyil default bir şey. Amma müəyyən edə bilərsiniz funksiyası nə, Siz app istədiyiniz nə verilir. Çox rahat vasitədir. Və bütün ki, Mən əsasən bildirib bir çox əsas sintaksis əhatə edir və Məqsəd C fundamental konsepsiyası proqramlaşdırma və bəzi s kodunu edə bilərsiniz. Çox daha maraqlı. Belə ki code həqiqətən bir deyil az böyük Siz ilk dəfə onu açmaq zaman. Bir sürətli qeyd, belə ki, əgər iOS inkişaf etmək istəyirəm, Mən bir Mac gəlir. IOS inkişaf etdiyini Çünki Windows həqiqətən çətin, həqiqətən. Bu doable, lakin bu, həqiqətən çətindir. Və mütləq g redaktə istifadə etmək istəmirəm. Belə ki kodu var bir neçə müxtəlif sahələri. ilk s açmaq kodu Bir naviqasiya sahəsi görəcəksiniz, olan əsasən bütün göstərir Cari layihə faylları. Siz toolbar sahəsi olan əsasən fikir idarə edir, və ya bir az tez s kodu özü haqqında alətlər. Bu faktiki redaktoru sahəsi. Bu sahə çox oxşar g redaktə, g redaktə daha lakin daha yaxşı. Bu doğru sahədə deyil kommunal sahəsi çağırıb. sahə həqiqətən lazımlı olur Siz interface yaratmaq və ya ifadə edirik Sizin app üçün bir sürətli setups. Və son sahəsi ayıklama edir. Bu sahə konsol ehtiva edir. Belə ki, printf demək zaman, və ya, bizim halda NSLog bütün nəticələri gedərək burada çap. Bütün hüquqlar? Edirəm ki, biz, həqiqətən, tez edə bilərsiniz tapmaq iOS proqramlaşdırma nümunə. Və həqiqətən s kodu açmaq bildirin. Belə ki, siz s kodu açmaq hər dəfə, bu belə bir şey göstərmək niyyətindədir. Bu xahiş olacaq siz nə istəyirsiniz? Əgər bir şey başlamaq istəyirsiniz əsasən təsadüfi bir oyun, siz yalnız olmadan kodu test edə bilərsiniz həqiqətən hər hansı bir app törətməkdə. Yeni bir layihə yaratmaq istəyirsiniz? Və ya davam etmək istəyirsiniz Mövcud layihə üzərində işləyir? Bizim halda biz gedirik yeni bir layihə yaratmaq. Belə ki, həqiqətən gözəl oldu ki, kodu həqiqətən artıq Bəzi şablonları sizə verilmiş obyektlərin yaradılması üçün. Bir oyun etmək istəyirsinizsə, kodu var həqiqətən, sizin üçün bir oyun şablon var, , səhifə based uygulamalar var nişanı based proqram. Bu halda, biz gedirik çox sadə bir şey etmək, və biz istifadə etmək olacaq bir görünüşü tətbiqi. Bundan sonra, yalnız zəng etmək istəyirəm nə Sizin məhsul və adı nə nə tanıdan, və nə dil istifadə edirsiniz. Burada biz istəmirik Core Data istifadə edin. Core Data əsasən databasing iOS edir. Siz Core Data deyilsə, s kodu müəyyən etmək gedir sizin üçün bir çox mürəkkəb dərsləri. Belə ki, biz istəyirik, sadə şeyi saxlamaq üçün yalnız Core Məlumat olmadan gedir İndi. biz olacaq problem istifadə problem that-- edir biz yaratmaq üçün edilir olacaq ki, biz əsasən C Mario idxal etmək istədiyiniz iOS app. Belə ki, Mario-iOS zəng edək. Əlbəttə siz nə daxil Sizin layihə qoymaq istəyirik. Və biz getmək. Belə ki, bu bir az böyük, lakin bu, həqiqətən deyil biz yalnız slaydlar gördüm. Və ilk ərazi biz indi görürük əsasən layihə konfiqurasiya edir. Belə ki, hər şey etmək istəyirəm Layihə, cihaz nə cür, Yalnız deyək cihaz nə cür Siz app görünür istəyirsiniz? IPhone, iPad və ya universal mı? Cihaz oriyentasiya, bütün bu məhsulları So. Çox da əhəmiyyətli deyil, lakin ola bilər, lakin bu ola bilər Siz müəyyən bir yerdir layihə, əgər həqiqətən Apple mağaza yerləşdirmək istəyirəm. Bütün hüquqlar, baxaq bizim kodu içində bir şey. Fayl naviqator ilə gedək. Bu bütün faylları ki, artıq çox gözəl şablon ilə gəldi. Belə ki, biz onlardan biri basın zaman bu kimi görünür. G redaktə çox oxşar. Amma olduğunu görə bilərsiniz sintaksis işıqlandırılması yəqin ki, bir az gözəl. Və bu, həqiqətən çox daha çox var g redaktə çox güclü. Və tam avtomatik bilər Sizin üçün bir çox şeyi, Biz çox tez görəcəyik. Kimi də ayıklama sahəsi açmaq edək. Bütün hüquqlar, biz göründüyü kimi, konsol sağ burada. Bu harada görmək olacaq nə Siz printf və ya bir şey nsloging istəyirik. Daha ADO olmadan, belə ki, həqiqətən edək Bu app tərtib və nə görmək. Bir əsas xüsusiyyət s code ki, s kodu iPhone simulator ilə gəlir. Belə ki, bir var ehtiyac yoxdur iPhone, layihə cəhd s kodu ki, biclik bilərsiniz Siz kimi, biz indi görürük. Bu olduqca gözəl. Bu bir az alaraq vaxt bit tərtib etmək və əsasən var boş proqram, olan həqiqətən heç bir şey yoxdur. Amma bu tərtib edir. Bu olduqca zəhmli deyil. Bu, ha C daha yaxşı? Bütün hüquqlar, sonra edək bir şey əlavə etmək üçün çalışırıq. Bir az bir fayl Burada qəribə eskizlərinin adlanır. Bu, həqiqətən, böyük s kodu zəhmli xüsusiyyət. Çünki kodu, siz drag həqiqətən bilərsiniz və interfeys üzərində elementləri düşmək və birbaşa görünür. Ki cəhd edək. Biz burada "Hello World !!!" bir etiket düşmək Biz ki, mərkəzi bilər. Pretty cool. İndi bu stop simulyasiya run edək. Burada "Hello World !!!" var Biz hətta hələ hər hansı bir kodlaşdırma etmədi. Heck nə baş verir? Bu necə güclü Interface Builder ola bilər. Kimsə belə ifadə etdi Siz yəqin ki, yalnız yazılı olmadan app tam kod yəqin ki, bir min xətləri yalnız Interface Builder istifadə edərək. Amma yəqin ki, deyil ən yaxşı yolu bunu. İndi həqiqətən kodlaşdırma aşağı almaq imkan verir. Fayl strukturu Belə ki, həqiqətən maraqlı , çünki siz görə bilərsiniz ki, orada hər hansı bir əsas funksiyası var. Bax? Biz əvvəl qeyd edildiyi kimi, Bu görə bilərsiniz bir təzahürüdür fayl xüsusi sinif üçün. Amma heç bir əsas yerdə var. Belə ki, burada əsas var? Əslində, bir əsas, lakin Əsas həqiqətən, sizin gizli qalmaz. Əsas burada. Bu tanış görünür. Belə ki, əsasən, nə iOS Əsas daxilində edir əsas deyil zaman ki, əsasən olan adlanan app, bu icra zaman AppDelegate adlı obyekt yaradır. Mən əvvəl qeyd etdiyim kimi, bütün app həqiqətən özü bir obyekt deyil. Əsasən, bu şəkildə Belə ki, iOS app compiler danışanlardan ki, OK, mən yaratmaq gedirəm AppDelegate adlı məhsul, və mənim app olacaq. Belə ki, getmək lazımdır ki, AppDelegate vasitəsilə ki, oğlan bunu nə görmək. Mənim iş mənim üçün edilir. Və AppDelegate siz görə bilərsiniz bəzi həqiqətən qəribə funksiyaları var, yaxşı həqiqətən üsulları ki, Apple artıq sizə verdiyi. Bu nədir? Bu, həqiqətən, yalnız protokollar var Mən bəhs edirdi. Belə ki, bu hadisələr var ki, Apple ilə başlamaq üçün verdi. Heç bir şey, bəzi var İndi funksiyaları, lakin biz başlamaq istəyirsinizsə, Bizim app üçün bir şey tapılanlar nəzərə almaq əvvəl Hər hansı bir fikir, biz burada bunu. Siz yalnız adı oxuya bilərsiniz və hərhalda Tədbir həqiqətən, həqiqətən, aydındır. Belə ki, indi əsas yaratdı AppDelegate üçün bir obyekt. Və AppDelegate edəcəyimiz nə həqiqətən də sizin gizli qalmaz. AppDelegate başlamaq niyyətindədir ViewController fond loading. Belə ki, əsasən başlamaq olacaq Siz bütün views loading və yalnız görünüşü göstərmək iyerarxiya əsaslanır. Belə ki, bu halda biz yalnız burada bir görünüşü. Belə ki, yalnız görünüşü deyil adlı olacaq. ViewController məntiq sağ burada. Bu, həqiqətən, kodu biz yalnız gördüm görünüşü nəzarət edir. Bütün hüquqlar, burada bir şey edək. Belə ki, viewDidLoad bir hadisə kimi səslənir, Bu da bir nümayəndəsi əslində, bu da bir protokoldur. Belə ki, görünüşü, dolu nə funksiyası daxilində hər şey adlanacaq. Bu halda biz Hello "görmək lazımdır Tianyu! "Biz proqram run əgər. Bu bir az yavaş əldə eskizlərinin faylları tərtib. Yaxşı, həqiqətən, bunun üçün bir çıxış görürsünüz. Bu olduqca sərin var. İndi həqiqətən Mario edək. Mən müəyyən etmək gedirəm çox tez fəaliyyət göstərir. marioWithLevels: (int) səviyyəsində nəticələri. Bütün hüquqlar, bu, həqiqətən zəhmli deyil s code avtomatik tamamlanması xüsusiyyət. Belə ki, yazmaq və daxil yazın zaman, artıq şablon imtina Sizin üçün olan olduqca sərindir. Bu, həqiqətən baxmaq lazımdır uşaqlar üçün tanış. Bağışlayın, mənim günahım deyil. Bütün hüquqlar, sərin. Bu məntiq həqiqətən tanış baxmaq lazımdır Siz uşaqlar, xüsusilə yalnız Mario. Amma biz indi çap edəcək konsol hər bir zaman, biz elə saxlamaq istəyirəm, çünki biz çap olunur nə track. Biz istifadə etmək olacaq sonra elə nəticələrini, çap keçirmək üçün out istifadəçi nəticəsində. Belə ki, əvəzinə biz yalnız edirik hər şey nslogging, biz hər şeyi saxlanılması edirik Bir funksiyası zəng nəticəsində daxil, lakin məntiq tam eyni deyil. Biz bunu, biz bitirmək sonra yalnız bizim nəticələri çap. Və burada əvəzinə çap mənim adı, biz bir funksiyası zəng olacaq. Nə görmək edək. Bağışlayın, açıq-aydın. Biz gözəl var Burada kiçik piramida. Bu əsasən C, biz istəyirik yalnız Bir funksiyası zəng harada manipulyasiya və nə kimi bir funksiyası baxmaq deyil. Fərqli bir şey var. Amma bu əslində çox maraqlı, burada, biz görən deyilik, çünki iPhone app bir şey. Belə ki, həqiqətən APP iPhone varsa Siz, həqiqətən, Mario iOS hüququ varsa, İndi, fikrində deyilik bir şey görmək ki, çünki Mario ilə bir şey var bir konsol bütün bu nəticələr Bir istifadəçi gizlidir. Bu, bax budur olan "Hello World !!!" dir Yaxşı deyil. İndi istifadəçi görmək edək nə biz çap edirik. Beləliklə, biz artıq etiket ehtiyac yoxdur. Nin cəhd edək və bir şey anlamaq başqa faydalı ola bilər. Həqiqətən bir var adlanır element mətn sahəsində, bilər bizim üçün çox faydalı ola bilər. Bu, əsasən bir bölgə göstərir mətn redaktə edilə bilər. Belə ki, həqiqətən faydalı görünür. İndi sürükleyin və açılan bildirin. Wow, biz bir mətn görünüşü var Bizim fikrimizcə, həqiqətən fantezi. Bu bir az çox böyük deyil. Üzrə kiçik edək. Mərkəzi qoyun. Eləcə də kiçik olun. İndi biz biz bilər, bir mətn görünüşü var son nəticə keçirmək üçün istifadə edilə bilər. Amma indi bu mütləq işləmək niyyətində deyil no-- var, çünki ViewController biz yalnız ki, bilmir müəyyən Orada mətn görünüşü var. Belə ki, biz elə etmək lazımdır Mətn görünüşü keçid biz yalnız sinif ilə yaradılmışdır ki, Artıq bizə gəlib. biz bunu yoldur həqiqətən, həqiqətən sehrli. Belə ki, eskizlərinin açmaq. Orada olan xüsusi [işitilemez] [adlanır? köməkçisi?] [işitilemez]. Ki, basın, bu iki faylları açmaq üçün gedir. Bir sinif və digər bir Bunun üçün müvafiq rəyidir. Bu, çox, çox faydalıdır. Və yalnız H faylı keçir bildirin. Control, bu [işitilemez] məntiq deyil. Nəzarət Basın və sürükleyin elan mətn görünüşü. Biz bu outputView zəng olacaq. Qoşun. Belə ki, burada biz yeni elan edib Bizim ViewController sinif əmlak. Və yeni əmlak yalnız mətn rəyidir Biz interface binasında yaratdıq. Bu yolla biz bilər, belə ki, giriş Bütün məlumatlar və içərisində hər şey manipulyasiya zəhmli çıxış görünüşü. , Bizim faktiki kodu Belə ki, Bunun ilə bir şey edək. Belə ki, bu dəfə biz çap kimi zaman yekun nəticə out Mario, biz bir şey giriş deyil istəyirik. Hesab edirəm ki, saxlamaq bilər demək giriş bəyanat. Bundan əlavə, biz oxumaya göndərin biz yalnız çıxış keçirmək üçün yaradılmış olan biz yalnız yaradılmış textview bir UI edir. İndi nə görmək edək. Wow. Biz hazırda app bir piramida var. Istifadəçi çıxış çünki görə bilərsiniz Biz kodu çıxdı sitemizi Bizim interface. Bu olduqca yaxşı. Bu, həqiqətən ki, deyil Maraqlı biz can--, çünki Bütün app edir edir Sizə bir piramida göstərən, və bu barədə nə edə heç bir şey yoxdur. Bu, xüsusilə maraqlı deyil. Belə ki, indi bir düyməsinə edək ki, fikir aydın olacaq. Bir düyməsinə faydalı olacaq ki, görünür. Çək və açılan. Button biridir. Button iki. Beləliklə, biz sol basın zaman düyməsini görünüşü aydın olmalıdır. Ekranda heç bir şey olmalıdır. Və biz basın zaman sağ düyməsini, Mario, view yenidən görünür gedir. Belə ki, bu yol da yoxdur sehrli stuff, nəzarət və drag sinif bəyannamə köməkçi director-- da köməkçi Viewer. Bu halda biz ifadə olunur ki, bir hərəkət olmalıdır. clearMario. Belə ki, burada biz artıq yaratmışdır clearMario adlı bir hərəkət, olan adlandırmaq olardı metodu Biz düyməsinə aydın basın zaman. Bizim əslində kodu Belə ki, yalnız edək Çıxış mətn və çıxış görünüşü qoymaq heç bir şey daxil, və bu yolla Bu aydın görünür olacaq. Bundan əlavə, ən yaratmaq runMario adlı başqa bir metodu. Oh, sorry ki, bir əmlak olmamalıdır. Bütün hüquqlar olmalıdır eləcə də bir hərəkət ola bilər. Və funksiyası zaman adlı, biz yalnız Mario on axır. Ümid edirəm ki, gözəl olacaq. Bu tərtib varmı? Bəli. İndi biz bir görünüşü var. Biz bir çıxış var. Və yalnız nə görmək edək. Bu getdi. Bu daha geri. Belə ki, burada biz müəyyən etdik funksiyası hansı zaman adlanacaq biz bir şey yazın, biz xüsusi düyməsini basın zaman. Bu əsasən Hədəf hərəkət sxemi hadisə idarə Məqsəd C. proqramlaşdırma Bundan əlavə, Bu çox maraqlı deyil Biz, həqiqətən, dəyişə bilməz, çünki piramida necə yüksək olacaq, belə ki, biz yəqin ki, elə istəyirəm istifadəçi olan giriş əldə və hündürlüyü dəyişdirmək piramida nə onlar çıxış əsaslanır. Belə ki, nə olacaq. Beləliklə, biz runMario zəng bu dəfə, biz yalnız Mario birbaşa zəng etməyin. Bu bir adı. Nümayəndə. Bu, çox maraqlıdır. Nümayəndə nədir? Mən burada özünü qoymaq üçün gedirəm. Və biz görmək olacaq nə sonra deməkdir. Belə ki, burada biz əsasən yaradılmış bir xüsusi instansiya UI siqnalı adlı görünüşü. A UI alert rəyidir əsasən nə olacaq hər dəfə bir şey pops bax giriş üçün xahiş və, Siz çalışdığınız zaman nə olacaq kimi Bir app mağaza bir şey almaq. Bundan əlavə olaraq, sonra yaratmaq, biz yalnız uyarı göstərir. Bütün hüquqlar, yalnız tez edək test ki, iş və ya deyil. Bu, çox sərin var. İndi həqiqətən bir yaratmaq imkan UI uyarı üçün giriş sahəsində. Bu biz bunu necə edir. Və biz bir olmalıdır uyarı üçün giriş görünüşü. Çox sərin. Yalnız 10 deyək. Bu doğru bir şey etdiklərini deyil İndi zəng, həqiqətən, çünki mario həyata keçirilməsi üçün dəyişmədi. Belə ki, bu bir az çevrilib az qəribə zaman, çünki biz zaman biz aşağı düyməsini basın alert baxımından bir düyməsini basın, bir şey olmalıdır lakin bu baş vermir. Necə ki, biz tutmaq edirsiniz? Necə ki, biz bir istifadəçi bilirik ki, bir uyarı görünüşü rədd edib və artıq, çünki bir sıra daxil İndi heç bir şey həqiqətən baş verir. Yaxşı, siz guessed ola bilər sağ, nümayəndə heyəti. Belə ki, bütün əlavə Bu bəyanatlar, Biz yeni bir heyət üçün əlavə etmək lazımdır Bu UI alert görünüşü nümayəndə çağırıb. Hər bir Belə ki, qarşılıqlı və ya hadisə biz olacaq ki, UI alert ilə ele olacaq həm də sinif. Belə ki, əlavə olacaq index da alert görünüşü basın düyməsini basın. Bu çatır. Biz ki, halda, belə ki, already-- belə ki, biz var protokol aşkar ki, zaman hadisə idarə edəcək Biz Done düyməsini basın alert görünüşü. Belə ki, hər dəfə biz azad alert fikrincə, bu olmalıdır. Mənə yalnız çox tez test edək. Yaxşı, həqiqətən, biz burada çatmışdır. Belə ki, burada, biz deyil həqiqətən, həqiqətən, almaq Belə ki, biz çıxmaq istəyirəm the-- almaq biz əvvəllər mətn alert baxımından girdi. Və mətn əsasında, biz istəyirik Mario keçirmək üçün gedir. Bu, çox tez çıxır Bu, həqiqətən işləyir və ya əgər. Bu halda ki, biz daxil əgər, biz 10 görürsünüz, 10, deyək. Çox yaxşı, biz burada bir sıra var. Bu olduqca yaxşı. İndi son addım Belə Olacaq edəcək son addım biz indi nə etmək lazımdır Yalnız bir ilə Mario zəng edir səviyyədə yığımı ki, alert görünüşü qoyduq. Beləliklə, biz çevirmək lazımdır IOS bu string. Statik daşqın çox zəhmli deyil. Və sonra biz yalnız öz zəng marioWithLevels dəyəri. Iradəsi olduğunu görəcəksiniz edək həqiqətən iş və ya deyil. Biz artıq bir piramida sunulur. Boyu dəyişdirmək üçün cəhd edək. Bu, həqiqətən çalışır. Bu olduqca sərin var. Indi siz belə ki, yalnız giriş istədiyiniz hər hansı bir dəyəri. Yalnız dörd deyirlər. Bu olduqca zəhmli deyil. Belə ki, bu əsasən həqiqətən sürətli nümunə s kodu bir layihə yaratmaq üçün necə və həqiqətən tez tel necə bəzi həqiqətən sadə hadisələr və funksiyaları. Belə ki, mənbə gedir sonra online qoymaq üçün. Əgər istəyirsinizsə Belə ki, iOS Mario işləri necə, Mən eyni qoymaq gedirəm sonra CS50 veb üzərində layihələr. Biz əsasən ilə tamamlayın yay, biz başa əvvəl Mən yalnız uşaqlar qeyd etmək istəyirəm bəzi həqiqətən zəhmli vəsait online mövcuddur. Aydındır ki, Apple sənədlər çox faydalı olacaq. Amma ki, əlavə, xüsusilə dörd mənbələri, kodu məktəb gəlir ağac ev, AppCoda və WWDC videos. Kodu məktəb və ağac ev var iki online maarifçilik saytları, olan xüsusi diqqət proqram mühəndisliyi üzrə. Xüsusilə kodu məktəb, onlar IOS həqiqətən yaxşı tutorial var. Ki, bunun üçün həqiqətən sürətli nümunəsidir. Onlar, həqiqətən, həqiqətən cute-- yaratmaq ki, az cute iPhone baxmaq Oradakı dostum, bu, olduqca zəhmli deyil. Və yol Məqsəd izah C syntax mükəmməl aydındır. Ağac ev eynidir. Və AppCoda bir forumdur. Bu, həqiqətən run bir blog var həqiqətən təcrübəli Objective C proqramçı. Və AppCoda bütün bu Dərsliklər var olduqca qısa və həyata keçirilməsi üçün asan, yüksək məsləhətdir. Və bir geliştirici değilseniz, mütləq kontrol getmək necə WWDC video harada siz son iOS proqramlaşdırma haqqında məlumat texnika, API və kitabxanaların. Belə ki, olduqca çox Seminarda üçün. Çox sağ olun. Mən siz fun ümid Öz iOS app yaratmaq.