TIANYU LIU: Hey, nasıl herkesi gidiyor? Ve bu iOS App nesnel c Seminerin programlama. Ve benim adım Tianyu Liu olduğunu. Ben, şu anda Lowell genç değilim bilgisayar bilimi konsantre. Yani bu seminere ben değilim gidiş Sizi öğretmek Bir uygulamayı nasıl hakkında biraz. Yay, bunun için heyecanlı olsun. Biz bile dalış başlamadan önce Yani gerçek programlama tarafına, hakkında konuşmak hızla sadece gerçekten atalım neden bir iOS uygulaması oluşturmak isteyebilirsiniz? Neden bu kadar iOS harika? İlk sorunun Yani, ilk Bizim için oldukça harika bir şey, özellikle CS50 olarak Öğrenci, yani iOS Amaç C. Şey kullanır, orada Swift adında yeni bir dil, ama biz gitmiyoruz Bu seminerde bu kullanın. Orada, Swift ilgileniyorsanız Bu konuda bağımsız bir seminer olduğunu. Ama Objective C temelde C. Anlam bir üst C kullanmak her şey olabilir Objective C çevrilecek çok kolay. Daha sonra, o gerçekten görebilirsiniz gibi bazı çok temel sözdizimi vardır, vardır temel olarak tamamen aynı, C ve Objective C Yani, Eğer CS50 almış beri Bu kadar uzak, zaten en az% 40 Objective C biliyorum. Ayrıca, Apple gerçekten var iOS için sağlam API. Gerçekten çılgın bir yeri vardır şeyleri onunla yapabilirsiniz. Bir birisi aslında bir iOS uygulaması yarattı kontrol otomobiller için olan oldukça ilginç. Muhtemelen bir helikopter daha heyecan verici. Ama bu ne kadar güçlü iOS API olabilir. Ve aklınıza gelebilecek Şu anda anladım, yığın taşması muhtemelen biridir En önemli online kaynaklar Sizin için kullanılabilir. Ve iyi haber, her belki olabilir tek sorun inşa ederken düşünüyorum senin Objective C nihai proje, Bir yığın taşması cevap muhtemeldir. Sadece harika. Buna ek olarak, iOS gerçekten bir platform Eğer büyük bir ulaşabileceğiniz küçük bir çaba ile seyirci. Bu Android gibi değil her şey oldukça parçalanmış. Herşey iOS birleşik olduğunu. Ve sürece oluşturmak gibi Bir iPhone için bir uygulama, yapabilirsiniz çok kolay bağlantı iPad ki, iPad Mini, ya da farklı iPhone boyutları. Bunlar gerçekten uygundur. Ve bu sadece gerçekten iyi arkadaşlarınızı etkilemek için. Sen sadece bir iPhone tutabilir ve, hey, arkadaşına söyle Bu yaptığım app. Herhangi için bunu yapabilirsiniz güzel masaüstü uygulamaları. Pekala, şimdi aslında başlayalım dil Amaç C içine Peki neden biz başlamak yok Bazı gerçekten temel sözdizimi. Objective önce belirtildiği gibi C Bu C temelde bir üst var Yani temel sözdizimi bir yeri vardır Aslında tam olarak aynı. Bir değişkeni bildirmek ve İki değişken bir araya ekleme Biz Mario yapmış gibi tam olarak budur. Burada yeni bir şey yok. Döngü için Benzer şekilde, kiracı ve durum da aynıdır. Sen senin kadar sadece bir for döngüsü yapabilirsiniz Bir Mario [duyulamaz] yaptım var. Ve koşullar yapabilirsiniz gibi ne önceki p setleri yapıyor. Ancak, Objective C C, tamamen değil, ve bir şey olduğunu garip konuda. Ilki olma sen ne zaman ki C programlama yapıyor, genellikle çağrı dahildir ve bir kütüphane adı. Ama Objective C o ithalat diyoruz. Temelde, işlevselliği söyleyerek sadece farklı isimler. Ve dizeleri Aslında biraz garip. İlk görebilirsiniz garip bir şey Eğer oldukça weird-- olması sorry-- Eğer oldukça garip NS var Buraya oturum. Ve ikinci şey Bu tür garip Daha önce işareti bir var olan Aslında dize ilan. Yani işareti temelde anlamına Bir dize dize değil, sadece olduğunu, Aslında bir amacıdır. Biz açıklamak için gidiyoruz daha sonra o kadar yok panik Eğer yapmazsan Bu ne demek anlıyorum. Ve konsola baskı biraz olduğunu Farklı çünkü printf diyoruz C, ama Objective C biz [duyulamaz] diyoruz. Ne olduğunu merak ediyor olabilirsiniz. Yani, Printf temelde sadece farklı bir dil. Tam aynı kullanım, aynı işlevselliği. Peki o çıkıyor Objective C, aslında Bir ns Neredeyse önek vardır Her şey, her temel veri türü, NSDictionary, NSArray, NSString. nedeni ns varlık Aslında Sonraki Adım açılımı, hangi bir şirket olduğunu Steve Jobs, kurdu Bir şirket hangi durumlarda dil Objective C doğdu. Yani bu temelde bir gelenektir. Ben biraz biliyorum garip, ama Apple var. Hatta tuhaf bir Yani bir şey daha bir işlev bildirimi olduğunu. Bu biz ne çok farklı C görmek burada aslında, çünkü Artık C gibi görünmüyor. Eğer tarafından ötürü-- ne var Bu bir kurşun nokta değildir yolu, Bu bir eksi işareti olduğunu. Bir eksi işareti parantez var geçersiz ve ardından işlev adı. Sadece eğer diyelim biz Daha sonra, merhaba dünya var Dönüş türü geçersiz olur biz hiçbir şey geri çünkü. Ne gerçekten garip olur sen ne olduğunu birden fazla parametre olan Aynı işlevi geçen bu Burada görüldüğü gibi gerçekten garip olacaktır. Biz bir yöntem adı var, denilen addInt [duyulamaz] ve biz bir parametre geçiyoruz. Ama bundan sonra, biz daha yöntem adı çağrısı. Ve ile sonra geçen ediyoruz İkinci parametre. Bu, aslında biraz garip ancak tüm bu işlev bildirimleri Bu aynı desen izleyin. Biz başlamak için bir eksi işareti var. Eksi işareti artı işareti olabilir bazen yöntemin ne tür dayanmaktadır öyle. Yöntem temelde fonksiyonu için başka bir ad. Ve biz gidiyoruz açıklamak daha sonra zaman Biz nesne hakkında konuşuyor yönelimli programlama. Önce dönüş belirtmek , iç parantez yazın sonra yöntem adı geliyor. Sen bir parametre geçiyoruz. Ve daha fazla parametre varsa Eğer yöntem adı uzatmak gerekir ve temelde daha buraya bir şeyler yazmak. Bu istediğiniz herhangi bir şey olabilir. Bizim durumumuzda bu birlikte. Ama söyleyebiliriz sonu, ya da ya da ya Eğer istersen abc tam bar. Ve ondan sonra sen parametre b geçen. Bu gerçekten garip Kongre ama biz Elma istedi neden göreceğiz çok hızlı bir şekilde yapmak. Peki nasıl işlev diyorsunuz? Amaç bir işlevi çağırmadan Cı, aynı zamanda C farklıdır Aslında, çağıran bir Objective C işlevi Eğer birisiyle konuşurken gibi daha fazla olduğunu. Burada öz, var olan Bir nesne denir. Temelde söylüyorsun demek kendini nesne "Merhaba Dünya!" Bu işlevi çağırmak için nasıl. Bir nesne ve bir yöntem adı birbirleri ile kombine. Ve bu yerde garip bir uzantısıdır yöntem adı gerçekten devreye giriyor. Ikinci örneğe bakalım. Biz sadece denilen bir yöntem tanımlanmıştır addInt ile falan filan. Eğer aradığınız zaman bu durumda Yani belirli [? mesajı?] gidiyor kendini addInt gibi bakmak: 10: 2. Bu İngilizce gibi geliyor. Fonksiyonu olmasına rağmen fonksiyon beyanı, garip Objective C yılların noktası yöntem beyanı desen, Eğer aradığınız zaman olduğunu fonksiyonu veya yöntem gerçek İngilizce gibi ses çıkarır. Bu yüzden çok sezgisel Eğer içine bir kez olsun. Özellikle bu durumda, nerede temelde olabilir işlev adı olduğunu görüyoruz çeşit kendini belgeleyen. Herhangi gerek yok Daha fazla açıklama görmek için tam ne oluyor, ne Tam bir parametre yapıyor. Bu ötesinde, en küçük bir konuşalım Nesne yönelimli programlama hakkında biraz. Nesne yönelimli programlama temel programlama biri olan teknikler veya desenler Amaç C. Objective C tarafından kullanılan Objective C, değil denir C gerçekten iyi bir nedenle. Biz içine girmeden önce Yani Objective C sözdizimi, En gerçekten hızlı bakalım tam olarak ne bir amacıdır. Biz muhtemelen bir şey yaptık önce bir nesne gibi hangi sen yapı olarak adlandırılır Bir ağaç veya bir bağlantılı liste uygulanması veya [? deneyin. ?] Yani, bu kadar temelde bir yapı gibi, ama çok daha güçlü daha var. Bir nesne yöntemleri ve özelliklere sahiptir. Yöntem temelde işlevleri vardır. Temelde bir o fonksiyonları Belirli bir nesneye özgü olabilir. Ve özellikleri temelde alanı, yapı içinde belirtin. Her nesne Yani bazı özelliğine sahip bazı değişkenleri olan nesneye özeldir. Ve bazı işlevlere sahip olan Ayrıca nesne özgüdür. Ve işlevleri yöntemler olarak da adlandırılır ve değişkenler özellikleri denir. Bu sadece bir fantezi isim. Size aslında ederken, her görünüm Eğer bir iOS uygulaması açın yaparken görmek , Sadece Twitter ya da Facebook diyelim Gördüğünüz her görünümü bir nesnedir. Ve hatta tüm app Bir nesne ile başlamak. Çok ilginç bir kavram. Ve neden nesne istiyorsun programlama odaklı? Yani hayal edebiliyorum sizi o Program oldukça karmaşık alır. Sadece sen ne zaman diyelim satranç tahtası uygulanması, mantık gidiyor Gerçekten karmaşık. Sen 36 farklı var adet, bu yüzden eğer tüm mantığı yazmak istiyorum Satrançta 36 farklı parça, Bunun bir sürü olacak Farklı işlevler ve değişkenler. Bu sorun bir sürü. Ve muhtemelen bir yazmak için gidiyoruz Farklı yöntem veya farklı fonksiyon parçanın her biri için tam olarak ne kontrol. Eğer bunu yaparsanız Ama nesne yönelimli Programlama, bu parçaların hepsi içine soyutlanmış olabilir tek bir nesne. Ve nesne bazı ortak olacak parçanın ne tür gibi özellikler, değil mi? Bu ne renk? Nasıl taşıyabilirsiniz? Ve bu şekilde büyük ölçüde var Bunun mantığını basitleştirilmiş. Yani sadece gerçekten iyi bir yoldur karmaşık programları yapmak, ve hiyerarşik ilişki program dahilinde, çok basit. Biz görmek için gidiyoruz gibi neden çok hızlı ne zaman biz aslında yapıyoruz biz aslında olduğunuzda programming-- S kodu yapıyor Daha sonra oturumu programlama. Aslında bu ek olarak, Nesne yönelimli programlama eğlenceli bir çok şey var. Kendi nesne tasarımı var. Sen ne tasarım var kendiniz tarafından benziyorsun. Bunun hiçbir doğru cevabı yoktur. Ve tamamen ilginç. Yani nesne yönelimli programlama, iki temel kavramlar sınıf ve örnek olacak. A sınıfı temelde nesne için bir şablon. Ve bir örneği temelde belirli bir nesne. Sadece bir çerez yapıyoruz diyelim. Bu durumda, her bir aslında ile sona çerez bir nesne olacak. Ama çerez tabağı size pişirmeye kullanın tüm çerezleri bir sınıf olacak. A sınıfı temelde bir şablon. Ve örneği belirli bir olacak Nesne bu sınıfın dışına yarattı. Ve bir örneği oluşturulur sınıf bildirimi dayalı, olarak daha sonra slaytlar göreceğiz. Yani aslında gerçekten bir yapalım Hızlı bir örnek [duyulamaz]. En biz ilan ediyoruz diyelim Bir kedi için bir nesne. Nesne have-- gerekir Kedi sınıfı gerekir Bazı özellikleri ve yöntemleri vardır. Özellikleri olmalı ne tür sınıf have-- kedi olmalıdır? Örneğin, renk, yaş ve cins, bu değişken olacağı her kedi için özeldir. Ve bu bazı şeyler vardır Biz kedi tanımlamak için kullandıkları. Yöntemin ne tür, veya bir kedi ne yapabilirim? Bazı hızlı örnekler kovalamaca olacaktır fare, balık yemek ya da sadece miyav. Bu gerçekten hızlı Kedi sınıfının örneği. Ve gerçekten özel kedi nesnesi bir kedi olacak Biz belirttiğiniz yerde renk, yaş ve cins. Bu durumda, bizim amacı, artık bir sınıf artık. Biz sınıf şablonu kopyalayıp her özel bilgileri belirtmek Bu belirli bir nesneye bağımsız hale getirmek için. Ve aradığınız zaman Bir nesnenin içindeki bir yöntem, Sadece, nesne üzerinde miyav çağrı hangi sadece oluşturduğunuz kedi. Muhtemelen dışarı basacaktır "Hello World gibi bir şey! Miyav. " Oldukça sevimli. Pekala, sadece izin Bazı detaya olsun ve tam olarak ne yaptığını görmek iOS programlama olmanın çevirmek. IOS her programlama Yani içinde Sınıf iki dosya uygulanacaktır. Bir dosya, burada hangi arayüz denir. Başka bir dosya, burada hangi uygulama denir. Tipik arayüzü extension.h olacaktır Biz C kütüphanelerinde gördük. Ve uygulama dosyası extension.n olacak. Bu garip tür. Ama hiç yoktur, .c aslında .n demektir arasındaki temel fark İki. Bu durumda Yani, biz olduğumuzu görebilirsiniz nesneyi: arayüzü, Cat ilan. Bu miras denir. Biz temelde miras ediyoruz Nesne sınıfından kedi sınıfı. Yani her özellik ve yöntem olduğunu Daha önce nesne sınıfında tanımlanan otomatik olarak tanımlanacaktır Bir kedi sınıfında yanı. Buna ek olarak, renk tanımlamak cins, yaş, üç değişken. Bu aslında benziyor Eğer daha önce yapmış şey. Bu yapı gibi görünüyor. Yani temelde sözdizimi yapı beyanı için, ve bu tamamen doğrudur. Ve ben daha önce belirtildiği beri, fark, bir yapı ve bir amacı, bir temel farklılıklar , bir nesne yöntemi olmasıdır ise bir yapı yalnızca değişkenleri vardır. Böylece özelliklerine ek olarak veya Biz nesne için yarattık değişkenler, bazı yöntemini belirtin. Sadece biz burada diyelim Bir MEOW iki yöntem, Başka bir kovalamaca faredir. Biz muhtemelen geçen olmak istiyorum önceki yönteme dayalı parametre beyanname desen. Muhtemelen bir fare geçen olmak istiyorum. Ve muhtemelen isteyeceksiniz Bir bool belirten dönmek için kedi başarıyla varsa Fareyi yakalandı ya da değil. Bu arayüz, ama biz bkz aslında arayüz bir şey yapmaz. Bu sadece bir program söyler exists-- ne ne kedi sınıfında bulunmaktadır. Yani sırayla Program bir şeyler yapmak, Biz uygulama dosyalarını olması gerekir. Yani burada, yaptığımız ilk şey Açıkçası biz arayüzü ithal. Biz arayüzü aldıktan sonra, Biz yöntemini tanımlar. Sadece burada miyav diyelim sadece dışarı yazdırmak istiyorum "Selam Dünya!" konsola. Ve Uygulamadan sonra Dosya, biz hemen hemen bitti. Bu temelde bir sınıf bir sınıf için beyanname. Şimdi soru, olur nasıl bir değişken bildirmek? yolu bir oluşturmak için bir sınıf kullanmak Objective C nesne burada yazılıdır. Önce belirtmek Bu, bir kedi göstericisidir Objective C her nesne, çünkü Sonunda bir işaretçi olarak uygulanmaktadır. Ve sınıf aramak, onları aramak temel olarak Malloc Alloc gibi, işletim sistemi söylüyorum size Bu nesne için bazı bellek alanı olması gerekir. Bundan sonra bir nesne var Zaten ve sadece bunu başlatmak. Bu sadece sözleşmedir. Ben biraz garip bu kadar biliyorum, ama Bu Apple şeyler yapar aslında nasıl olduğunu. Özelliklerini bir atama aslında oldukça basit. Bu çok benzer Ne zaman ne yapıyoruz Eğer bazı özel atıyorsanız yapı içinde alan. Sadece değişken var , mülkiyet ismi, ve buna belirli bir değer atayın. Ve bir yöntemi çağırmak çok benzer. çağıran bir yöntemdir temelde hakkında konuşmak ne Amaç C. herhangi bir yöntemi çağırmak için Siz, bir nesne geçirerek Bu durumda o, Mycat olacak ve yöntem adı geçen ediyoruz. Eğer nesneye konuştuğunuz gibi, Eğer miyav gerektiğini Mycat. Oldukça ilginç. Bundan sonra, bir tane var daha temel tasarım deseni Konuşmamız gerektiğini Gerçek S koduna almadan önce. Bu tasarım deseni denir Olay programlama odaklı. Bu, aynı zamanda, en büyük olasılıkla biridir iOS programlama temel fikirler. Peki muhtemelen tam olarak ne olduğunu bilmiyorum olay güdümlü programlama, bir ama gerçekten bu korkutucu değil. Peki aslında, var zaten daha önce yapmış. Bu muhtemelen ettik hatlarından biridir Zaten son [inaudible] yazılı CS50 ve, google.maps.event.addListener (marker )} {), Fonksiyon ("tık" :. Sen bu hattımızı arayarak aslında bilgisayar söylüyorum olay denir her ki , Işaretleyici olur "tıklayın" bu işlevi kullanın. Bu çok farklı Eğer mario.c içinde ne. Mario.c size sadece programı çalıştırın bir kez, o sana bir çıkış verir, ve bitirdiniz. Bunlar tür gibidir bir atış programları. Olay güdümlü programlar çok farklıdır. Facebook, biri ise, en hayal edelim atış programı gerçekten iyi değil. Sadece Facebook gitmek bir kez ve bitti. Size bazı çıktı verir ve geri aldım asla. Daha fazla bir şey var asla. Yani burada, özellikle Kullandığımız desen Olay böylece, tahrik Her işlev olacak dayalı yakalanmış ne Olay oldu. Örneğin, biz varsa Bir düğme ve biz belirtin Bu düğmeye tıklandığında zaman ki, denilen işlev çağrısı "Merhaba Dünya!" Bu şekilde biz gerçekten can fonksiyon mantığı yönetmek son derece esnek bir şekilde akar. Kullanıcı yapmak veya bir fonksiyonu çağırabilirsiniz zaten adı olmuştur. Tamamen kullanıcıların ne dayanıyor. Yani biz bu olduğunu görebilirsiniz mario.c aslında daha çok daha iyi. Ve iyi haber olmasıdır aslında yeni bir kavram. Siz zaten yaptık son sorun ayarlayın. Bu nedenle amacı C orada Üç farklı şemalar olay güdümlü programlama için. İlk diyagramıdır Hedef eylem denir, nerede bir düğmeye bağlamak Bazı fonksiyonu ile basın. Eğer tıklayın zaman Sadece, diyelim Bazı düğme, bazı işlevini çağırın. Bu çok basit bir hedef eylemdir. Ikincisi de Aslında zor bir, protokol heyet denir. Biz açıklamak için gidiyoruz çok detaylı daha sonra. Ve üçüncü yol bildirim olduğunu. Bu aslında değil çok önemli kadarıyla biz endişe konum olarak, şans, çünkü Eğer bildirim kullanmak için gidiyoruz son proje oldukça düşüktür. Yani biz bu bölümünü atlamak için gidiyoruz. Ve biz dalış için gidiyoruz protokolü heyet içine. Peki tam olarak bir protokol nedir? Ya da bir heyet tam olarak nedir? En başlamak protokol hakkında konuşalım. Protokoller olaylar başka bir şey değildir. Ama bu olaylar verilir Apple tarafından size başlamak için. Örneğin, ben değilim Senin kaç tamamen emin adamlar Apple'ın orijinal kullanın Uygulamaya posta veya temas, ama her zaman kaydırma Tablo ve belirli bir hücre basın masada, o bir olaydır. Ve yapmak istiyorsanız kendiniz bu olay, aslında biraz zor. Yani Apple bile size vermiş Sadece doğrudan kullanabilirsiniz, böylece Etkinlik kendi şey yapmak. Protokoller aslında Gerçekten, gerçekten yaygın olarak kullanılan içinde Amaç C. Well Aslında, her uygulama bir şey yakaladı uygulama temsilci vardır. Narin içi tümüdür Uygulamayı yüklemek için protokoller. Sadece orada diyelim app bir olay yükü yaptım. Eğer ettik sonra Peki ne olması gerektiğini Bir uygulama oluşturulan, sen app açtıktan sonra, sonra sonra uygulamayı kapatın, ya da Eğer uyku iPhone koydu. Bunlar sahip olduğu tüm olaylardır zaten size verilmiş. Ve ilk olarak bu parçacıklar içinde hiçbir uygulama olacaktır. Apple sadece bu fonksiyonu olduğunu söyledi Bazı olay gerçekleştiğinde ne olacak, ama bununla ne fonksiyon size kalmış tamamen. Heyeti temelde sınıf söylüyorum Bu protokolleri ele gerektiğini söyledi. Biraz var kafa karıştırıcı, ama olacak biz ne zaman çok daha net eylem s kodları. Protokole Delegasyonu aslında bir olduğunu anlamda son derece sağlam mekanizma biz heyeti yaparsak Belirli bir sınıfa, biz aslında işleyebilir olayların her türlü Elimizdeki herhangi bir sınıfı kullanarak, çok uygun bir araç. Için Yani bir hızlı örnek protokolü heyet Ben sadece konuştuk ne olacak. Bu protokol, spesifik olarak adlandırılır tableview [duyulamaz] rolünü seçin [at? index?] [? Geçmiş. ?] Yani bu bir yakalanmış olacağını olay olduğunda sizi Aslında belirli bir dokunun daki tableview hücre Sadece senin posta diyelim ya da kişiler app. Bir işlev içinde oldu aslında hiçbir şey yapmadan. fonksiyonu yok Varsayılan olarak bir şey yapmak. Ama belirtebilirsiniz işlevi ne, Eğer app istediklerini verilen. Çok uygun bir araç. Ve tüm bu Ben temelde söyleniyor bazı çok temel sözdizimi kapsayacak ve Objective C için temel kavram programlama, ve biz bazı s kod yapabilirsiniz. Çok daha heyecanlı. Yani s kodu aslında bir olduğunu biraz ezici ilk kez açtığınızda. Bir hızlı notu, bu yüzden eğer iOS geliştirme yapmak istiyorum, Ben çok bir Mac tavsiye ederiz. IOS geliştirme yapıyorum Çünkü , Windows gerçekten zor, gerçekten. Bu yapılabilir, ama bu gerçekten zor. Ve kesinlikle yapmak g düzenlemek kullanmak istemiyorum. Yani s kodu biz birkaç farklı alanlarda. ilk s açmak kodu Bir gezinti alanı göreceksiniz, hangi temelde tüm gösterir Mevcut projede olduğu dosyalar. Bir araç çubuğu alanı, sahip olduğu temelde görüşlerini yönetiyor, ya da bazı küçük hızlı s kodu kendisi hakkında araçlar. Ve bu gerçek editörü alandır. Bu alan çok benzer g düzenleme olduğunu, g düzenlemek daha ama çok daha iyi. Ve bu doğru alanda, bir programı alanı denir. Alan zaman gerçekten kullanışlı olur Eğer arayüz oluşturma veya belirterek konum app için bazı hızlı kurulumları. Ve son alan hata ayıklama olduğunu. Bu alan konsolu içerir. Yani printf demek ne zaman, veya, bizim durumumuzda NSLog Tüm sonuçlar gidiyor Burada basılacak. Tamam? Ben gerçekten hızlı bir şekilde yapabiliriz sanırım iOS programlama için bir örnek. Ve en doğrusu kadar s kodu açalım. Yani yukarı ın kodu açmak her zaman, bu kadar Böyle bir şey göstermek için gidiyor. Seni sormak için gidiyor ne yapmak istiyorsun? Eğer bir şey başlatmak istiyor musunuz temelde rastgele, bir oyun, sen Sadece olmadan kodu test edebilirsiniz Aslında herhangi bir uygulama taahhüdünde. Yeni bir proje oluşturmak istiyor musunuz? Yoksa devam etmek istiyor musunuz Mevcut proje üzerinde çalışıyor? Bizim durumumuzda biz gidiyoruz Yeni bir proje oluşturun. Bu yüzden, gerçekten güzel s var kodu aslında zaten Bazı şablonlar size verilen nesneleri oluşturmak için. Eğer bir oyun yapmak istiyorsanız, kod s aslında sizin için bir oyun şablonu vardır, , sayfa tabanlı uygulamalar vardır sekme tabanlı uygulama. Bu durumda, biz gidiyoruz çok basit bir şey yapmak, ve biz kullanmak için gidiyoruz Tek görünüm uygulaması. Bundan sonra sadece aramak istediğiniz ne Ürününüz, ve, senin adın ne ne tanımlayıcı, ve Eğer hangi dili kullanıyorsunuz. İşte biz istemiyoruz Çekirdek Veri kullanarak kontrol edin. Çekirdek Veri temelde bir databasing iOS olduğunu. Core Veri yaparsanız, s Kod tanımlamak için gidiyor Senin için çok daha karmaşık sınıflar. Bu yüzden sen, herşeyi basit tutmak Sadece Çekirdek Veri olmadan yapacağım hemen şimdi. Biz olmak için gidiyoruz sorun kullanarak problem ki- olduğunu Biz yaratmak için olduğunu gidiyoruz biz o temelde C Mario almak istiyorum iOS app. Yani Mario iOS ki diyelim. Tabii ki size ne belirttiğiniz projenizde koymak istiyorum. Ve oraya gitmek. Yani bu biraz olduğunu ezici, ama bu aslında ne sadece slaytlar gördüm. Ve ilk alan şu anda bakın temelde proje yapılandırma. Yani her şeyi yapmak istiyorum Proje, cihazın ne tür, diyelim cihazın ne tür Eğer app görünmesini istiyorsunuz? IPhone, iPad veya evrensel midir? Cihaz yönelim, tüm bu şeyler Yani. Çok önemli değil, ama olabilir, ama bu olabilir kurmak bir yerdir proje eğer gerçekten Apple mağazası dağıtmak istiyorum. Pekala, bakalım Bizim kod içinde bir şey. Dosya gezgini üzerinden gidelim. Ve bu tüm dosyalar zaten vardır Çok güzel bir şablonla birlikte geldi. Yani biz onlardan birini tıkladığınızda Bu neye benzediğini olduğunu. G düzenlemek çok benzer. Ama bunu görebilirsiniz dizim muhtemelen biraz daha güzel. Ve aslında çok fazla var g düzenleme daha güçlü. Ve tam otomatik olabilir Sizin için bir çok şey, biz çok hızlı bir şekilde göreceğimiz gibi. En de hata ayıklama alanı açalım. Pekala, biz gördüğünüz gibi, Konsol burada. Bu nereye görmek için gidiyoruz ne Eğer printf falan nsloging konum. Fazla uzatmadan Yani, aslında atalım Uygulamayı derlemek ve ne olduğunu görün. Bir temel özelliği için s kodu, bu s kodu iPhone simülatörü ile birlikte geliyor. Yani bir olması gerekmez iPhone, projenizi denemek için s kodu için bu taklit edebilirsiniz Eğer, biz şimdi görebiliyorum. Oldukça güzel. Biraz alıyor zaman biraz derlemek ve temelde var Boş bir uygulama, hangi aslında hiçbir şey yok. Ama derler. Oldukça etkileyici. Ha, C daha iyi? Pekala, o zaman atalım bir şey eklemeyi deneyin. Biraz olan Bir dosya Burada garip storyboard denir. Bu, aslında bir büyük s kodu için müthiş bir özellik. Çünkü s kodunda, Sürükle aslında can ve arayüzü üzerine elemanları damla ve doğrudan görünecektir. En deneyelim. Biz, burada "Merhaba Dünya !!!" etiket damla Biz bu merkezi olabilir. Oldukça serin. Şimdi bu durdurma simülasyonu çalıştırın. Burada "Merhaba Dünya !!!" var Biz bile henüz kodlama yapmadım. Halt ne oluyor? Bu kadar güçlü bir Interface Builder olabilir. Biri bile söyledi yapabilirsiniz muhtemelen sadece yazılı olmayan bir uygulamayı tamamlamak kod muhtemelen bin satır Sadece Interface Builder kullanarak. Ama muhtemelen değil En iyi şekilde yapmak. Şimdi aslında kodlama aşağı başlayalım. Dosya yapısı Yani aslında gerçekten ilginç , çünkü görebilirsiniz gibi, orada Hiçbir yerde ana işlevi. Görmek? Daha önce de belirttiğimiz gibi, Eğer bu görebilirsiniz bir uygulama dosyası Belirli bir sınıf. Ama asıl yerde yoktur. Peki nerede ana nedir? Aslında, orada bir ana olduğunu, ancak Ana aslında sizden gizli. Ana burada. Bu tanıdık görünüyor. Peki temelde ne iOS Ana içinde yapıyor Ana olduğunda olmasıdır temel olan çağrılır app, bunu yürütülen her appDelegate adlı bir nesne oluşturur. Ben daha önce de belirtildiği gibi, tüm Uygulama, aslında tek başına bir amacıdır. Temel olarak, bu şekilde Yani iOS uygulaması derleyici anlatıyor O Tamam, ben oluşturmak için gidiyorum appDelegate ismi verilen bir ürün, ve bu benim app olacak. Yani gitmek gerekir Bu appDelegate yoluyla ve o adam ne yaptığını görüyorum. Benim işim benim için yapılır. Ve appDelegate içinde bunu görebilirsiniz bazı gerçekten garip fonksiyonlar vardır, iyi aslında yöntemleri, bu Apple zaten vermiş. Bunlar ne? Bunlar aslında sadece protokoller ben bahsediyordum. Yani bu olaylar olduğunu Elma ile başlamak sizi verdi. Hiçbir şey bazı yoktur Şu anda fonksiyonların, ama biz başlatmak istiyorsanız Bizim app için bir şey görüntülemeden girmeden önce Herhangi bir görünüm, biz burada bunu. Sadece isim okuyabilir ve sanırım Olay aslında gerçekten açıktır. Yani şimdi ana yarattı appDelegate için bir nesne. Ve appDelegate yapacağını ne gerçekten de sizden gizli. AppDelegate başlayacak ViewController stok yükleme. Yani temelde başlatmak için gidiyor Eğer varsa tüm görünümleri kadar yükleme ve sadece görünümü hale hiyerarşiye dayalı. Peki bu durumda biz sadece var burada bir görünümü. Yani tek görünümüdür Bu çağrılacak gidiyor. ViewController mantığı burada. Bu aslında kodu biz sadece gördüğümüz görünümü kontrol eder. Pekala, burada bir şeyler yapalım. Yani viewDidLoad bir olay gibi geliyor, bu aynı zamanda bir temsilci olduğu aslında, Bu da bir protokoldür. Yani görünümü yüklenen olursa olsun, İşlevin içindeki her şeyi çağrılır. Bu durumda biz Merhaba "görmelisiniz Tianyu! "Biz programı çalıştırırsanız. Biraz yavaş gidiyor storyboard dosyaları derleme. Peki gerçekten de, biz bunun için bir çıkış görüyorum. Oldukça serin. Şimdi aslında Mario yapalım. Ben tanımlamak için gidiyorum çok hızlı bir şekilde işlev görür. marioWithLevels: (int) düzeyi sonuçları. Pekala, bu aslında harika s kodu otomatik tamamlama özelliği. Yani sizin için yazmak ve girin yazdığınızda, Zaten şablon vazgeçti Sizin için, hangi oldukça serin. Bu gerçekten bakmak gerekir Eğer çocuklar tanıdık. Üzgünüm, bu benim hatam. Pekala, serin. Bu mantık gerçekten tanıdık görünmelidir Eğer çocuklar, özellikle sadece Mario. Ama şimdi dışarı basacaktır Konsol her zaman, biz bir şekilde tutmak istiyorum çünkü Biz baskı ne iz. Biz kullanmak için gidiyoruz Daha sonra her nasılsa sonuçları, baskı görüntülemek için dışarı kullanıcıya sonuçlanır. Bunun yerine biz sadece konum Her şeyi nslogging, hangi biz her şeyi depolamak Bir işlev çağrısı sonucu içine, ama mantık aynıdır. Biz, biz bitirdikten sonra sadece bizim sonuçlarını yazdırabilirsiniz. Ve burada yerine yazdırmanın benim isim, bir işlevi çağırmak için gidiyoruz. En ne görelim. Üzgünüz, açıkçası. Biz güzel bir var Burada küçük piramit. Bu temelde C, biz konum sadece Eğer bir işlev çağrısı nereye manipüle ve nasıl gibi bir işlev görünüyor. Farklı bir şey yok. Ama bu aslında değil çok heyecan verici burada, gördüğümüz değil çünkü iPhone app şey. Yani aslında bir iPhone app-- varsa aslında Mario iOS hakkı varsa Şimdi, sen gitmiyorsun bir şey görmek için bu Çünkü Mario ile ilgisi vardır Bir konsolun içine tüm bu çıkışlar Bir kullanıcıdan gizlenir. Bu, gördüğünüz ne hangi "Merhaba Dünya !!!" dir Iyi değil. Şimdi kullanıcı görmek için çalışalım tam olarak ne biz baskı ediyoruz. Yani biz artık etiket gerek yok. En deneyelim ve bir şeyler anlamaya Başka bu yararlı olabilir. Aslında bir yoktur adı elemanı Metin alanı, olabilir bize çok yardımcı olacaktır. Bu temelde bir bölgeyi görüntüler metin düzenlenebilir olduğunu. Yani gerçekten yararlı görünüyor. Şimdi sürükleyin ve bırakın edelim. Vay be, biz bir metin görünümü var Bizim görünümünde, gerçekten fantezi. O biraz çok büyük. En daha küçük yapalım. Merkezi haline koy. Sıra daha küçük yapın. Şimdi hangi biz-ebil, bir metin görünümü var Bizim nihai sonucu görüntülemek için kullanılır. Ama şimdi o var Kesinlikle işe yaramayacak hayır-- olduğundan ViewController biz sadece bunu bilmiyor tanımlanmış Orada bir metin görünümü vardır. Yani biz bir şekilde gerek Metin görünümü bağlantı biz sadece sınıf ile oluşturulan Zaten bizimle geldi. Biz bunu yoludur aslında gerçekten büyülü. Yani film şeridi açın. Orada özel bir [inaudible] [aradı? asistan?] [duyulamaz]. Bunu tıkladığınızda, bu kadar İki dosyalarını açmak için gidiyoruz. Bir sınıf ve diğeri ise bunun için karşılık gelen bir görünüşüdür. Çok, çok yararlı. Ve Sadece .h dosyasına geçer verelim. Kontrol, bu [inaudible] mantık. Basın Kontrol ve sürükle deklarasyon haline metin görünümü. Biz bu outputView aramak için gidiyoruz. Bağlayın. Yani burada yeni bir ilan var Bizim ViewController sınıfı için özellik. Ve yeni bir özellik Sadece metin görünümüdür Biz arayüz binada yarattık. Bu şekilde biz olabilir Yani erişim, tüm veriler ve içeride her şeyi manipüle müthiş çıkış görünümü. Bizim gerçek kod Yani, en onunla bir şeyler yapalım. Yani bu sefer baskı gibi zaman Nihai sonuç üzerinden Mario için, biz bir şey günlüğü değil konum. Ben tutmak demek günlük beyanı. Buna ek olarak, okuma göndermek biz sadece çıkış görüntüsü, oluşturulan hangi biz sadece oluşturduğunuz TextView bir UI. Şimdi ne görelim. Vaov. Biz şu anda app bir piramit var. Böylece kullanıcı, çünkü bizim çıkış görebilirsiniz bizim kodundan çıktı kopyaladığınız Bizim arayüzü. Oldukça iyi. Aslında öyle değil heyecan verici biz can-- çünkü Tüm uygulama olduğunu yapıyor Size bir piramit gösteren, ve bu konuda yapabileceğimiz bir şey yok. Özellikle heyecan verici değil. Şimdi en bir düğme yapalım Bu görüşlerini silinir. Bir düğme yardımcı olacak gibi görünüyor. Sürükleyin ve bırakın. Düğme biri. Düğme iki. Bu yüzden sol tıkladığınızda düğmesi, görünümü temizlemek gerekir. Ekranda hiçbir şey olmalıdır. Ve biz tıkladığınızda Sağ düğme, Mario, görünümü tekrar görünmesini gidiyor. Yani bu şekilde biz de yapmak sihirli şeyler, kontrol ve sürükle sınıf bildirimine yardımcısı director-- içinde yardımcısı izleyicide. Bu durumda biz belirterek vardır o bir eylem olmalıdır. clearMario. Yani burada biz zaten oluşturduk clearMario adında bir eylem, ki adı olacaktır yöntemdir Biz düğmesi açık bastığınızda. Bizim aslında kod Yani, sadece atalım çıkış metin ve çıkış görünümü koymak hiçliğe ve bu şekilde açık olarak görünür. Buna ek olarak, en oluşturmasına izin runMario olarak adlandırılan başka bir metot. Ah üzgünüm, bu özellik olmamalıdır. Pekala, gerektiği aynı zamanda bir eylem olabilir. Ve bu fonksiyon olduğunda denilen, biz sadece Mario on çalıştırın. Umarım bu iyi olacak. Derlemek mu? Evet. Şimdi bir görünümü var. Biz bir çıkış var. Ve Sadece ne görelim. Bu gitti. Yine geri döndü. Yani burada biz belirttiğiniz fonksiyonunun ne tür çağrılacak olacak Biz bir şey yazın, Biz belirli bir düğmeye bastığınızda. Bu temelde Hedef eylem planı etkinlik için tahrik Amaç C programlama Buna ek olarak, Çok heyecan verici değil biz gerçekten değiştiremezsiniz çünkü piramit ne kadar yüksek olacak, bu yüzden muhtemelen bir şekilde istiyoruz Kullanıcı bir giriş olsun ve yüksekliğini değiştirmek piramit ne çıktı dayalı. Yani biz yapacağız. Bu yüzden runMario dediğimiz bu sefer, biz sadece Mario doğrudan demiyorlar. Bu kişinin başlığı. Delege. Bu çok ilginç. Bir temsilci nedir? Ben burada kendini koymak için gidiyorum. Ve biz görmek için gidiyoruz ne daha sonra gelir. Yani burada biz temelde oluşturduğunuz bir Belirli örneği UI uyarısı olarak adlandırılan görünümü. Bir UI uyarı görünümüdür temelde ne olacak Her zaman bir şey pops görmek giriş için size sorar ve yukarı, Eğer çalıştığınız zaman ne olacak gibi Bir App Store üzerinde bir şey satın almak. Buna ek olarak, senden sonra oluşturun, biz sadece uyarı gösterir. Pekala, sadece hızlı atalım Test bu işin veya olmaz. Bu çok cool. Şimdi aslında oluşturmanıza izin UI uyarının giriş alanı. Bu biz bunu nasıl. Ve biz bir olmalıdır uyarının giriş görünümü. Çok serin. Sadece 10 diyelim. Bu doğru bir şey yapıyor değil Şimdi çağrı aslında, çünkü mario yürütülmesi için değişmedi. Yani bu biraz haline gelmiştir biraz garip zaman, çünkü biz ne zaman biz aşağı bir düğmeye basarak uyarı görünümünde bir düğmeye basın, şey, olması gerektiğini ama olmuyor. Biz nasıl yakalarım? Nasıl bir kullanıcı olduğunu biliyorum Bir uyarı görünümü reddetti ve zaten, çünkü bir numara girdi Şu anda hiçbir şey aslında oluyor. Peki, tahmin olabilir doğru, heyet. Böylece tüm ek Bu beyannameler, yeni bir heyet eklemek gerekir UI uyarı görünüm temsilci çağırdı. Her Böylece etkileşim veya olay biz gidiyoruz UI uyarı görüntüsü ele olacak hem de bizim sınıf tarafından. Böylece ek olacak dizin uyarı görünümü tıklama butonu. Bu ulaşılır. Elimizdeki bu durumda Yani already-- yüzden var Bir protokol öğrendim zaman olayı idare edecek Biz Bitti düğmesini tıklatın uyarı görünümünde. Yani her zaman biz görevden Uyarı görünümü, bu gerçekleşmesi gerekir. Bana sadece çok hızlı test edelim. Peki gerçekten de, biz burada ulaştı. Yani burada, ne olmaz aslında aslında olsun Bu yüzden dışarı almak istiyorum Şeyin olsun Daha önce var metin uyarı görünümünde girdi. Ve metne dayalı, biz konum Mario görüntülemek için gidiyor. Bu çok hızlı bir şekilde çıkıyor aslında çalışır ya da değilse. Yani bu durumda, biz girişi varsa, Biz 10 görmelisiniz, 10, diyelim. Çok iyi, biz burada bir dizi var. Oldukça iyi. Şimdi son adım Yani göre-- olacak Son adım şu anda yapmamız gereken Sadece bir ile Mario çağrı edilir seviye girişine göre biz uyarı görünüm içine koyduk. Yani biz dönüştürmek gerekir iOS içine bu dize. Statik taşma çok harika. Ve sonra biz sadece kendini aramak marioWithLevels değeri. En olacak ki görelim gerçekten işe ya da değil. Biz zaten bir piramit verilen konum. Yüksekliğini değiştirmek için deneyelim. Aslında çalışıyor. Oldukça serin. Şimdi yapabilirsiniz Yani sadece giriş istediğiniz herhangi bir değer. Sadece dört diyelim. Bu oldukça harika. Yani bu temelde gerçekten hızlı bir örnek s kodunda bir proje oluşturmak için nasıl ve gerçekten hızlı bir şekilde lantÛlarÛyla bazı gerçekten basit olaylar ve işlevleri. Yani kaynak gidiyor Daha sonra çevrimiçi koymak. Eğer ilgileniyorsanız Yani iOS Mario çalıştığını nasıl, Ben aynı koymak için gidiyorum Daha sonra CS50 web sitesi üzerine projeler. Biz temelde bitti yaz, biz ve bitirmek önce Ben sadece sizi işaret etmek istiyorum Bazı gerçekten harika kaynaklar olduğunu online olarak mevcuttur. Açıkçası Apple belgeleri çok yararlı olacak. Ancak buna ek olarak, özellikle Dört kaynakları, kod okul tavsiye ağaç ev, AppCoda ve WWDC videoları. Kod okul ve ağaç evi vardır iki online eğitmenin web siteleri, özellikle hangi odak Yazılım mühendisliği üzerine. Özellikle kodu okulun için, onlar iOS gerçekten iyi bir öğretici var. Bu onun için gerçekten hızlı bir örnektir. Onlar aslında gerçekten cute-- oluşturmak Bu küçük sevimli iPhone bakmak Oradaki dostum, oldukça harika. Ve yol onlar Amaç açıklamak C sözdizimi çok açıktır. Ağaç ev aynıdır. Ve AppCoda bir forumdur. Aslında çalıştırıldığı bir blog var Gerçekten deneyimli Objective C ile programcı. Ve AppCoda tüm bu öğreticiler oldukça kısa ve uygulanması kolay, tavsiye. Ve bir geliştirici iseniz, Kesinlikle kontrol gitmek nasıl WWDC videoları nerede yapabilirsiniz En son iOS programlama hakkında bilgi teknikleri, API'ler ve kütüphaneler. Yani hemen hemen Seminerin için. Çok teşekkür ederim. Ve ben eğlenmek umut Kendi iOS uygulaması yaratmak.