2015-05-13 12 views
13

, orada böyle kod satırı oldu: Bu çizgi ne anlamaApple iOS belgelerini doğru olarak nasıl okuyabilirim? Ben web üzerinde bulunan bir öğretici takip ediyordu

var myImage = UIImage(named: "icon") 

ama tabii ki ezberlemek istemiyorum, ben istiyorum yazarın bu kodla nasıl geldiğini anlayın, bu yüzden UIImage sınıf referansının belgelerini araştırıyorum, bu kodu tanımlayan başlatıcıların altında hiçbir şey yok, neden? Bu kod hakkında daha fazla bilgiyi nerede bulabilirim?

Web'de bulduğum birçok öğretici okuyorum, çok sayıda video öğreticisi izledim ve çok kitap okudum, TÜMÜNÜ bunların hiçbirini özel kodlarla göstermediler, tamamen açıklıyorlar, AMA onlar Size nasıl geldiklerini söyleme, doğru iş için doğru yöntemi nasıl buldunuz?

Zamanım, tüm bu öğreticiler yerine Apple belgelerini okurken mi harcamalıyım? Yanlış yaptığım bir şey mi var? Bir şey mi eksik? Okuduğum her şeyi ezberlemek istemiyorum, bu yüzden uygulamaları geliştirmeyi öğrenmek istemedim, doğru kodu nerede bulacağımı anlamak istiyorum, bir geliştirici gibi düşünmeyi öğrenmek istiyorum.

cevap

8

yazılı bilginin 3 faydalı kaynağı vardır:

  1. Örnek kodu/Öğreticiler:

    Xcode/iOS'taki kodlama biraz deneyim kazandıktan sonra resmi belgeler harika ama bunun zor bir yerdir başla. Hiçbir şey iyi örnek koduna bakmıyor.

    Örnek kod (Apple'dan, Stack Overflow'tan, Ray Wenderlich'ten, bulabileceğiniz her yerden) öğrenmek için harika bir yoldur. Okuduğunuz dersleri yazan insanlar bile başkalarının örnek kodlarıyla başladı. IOS öğrenen ilk insanlar Apple'dan örnek kod ile başladı.

  2. resmi belgeler:

    Kodunuzdaki veya Oyun alanı UIImage resmi belgeler seçenek tıklayın almak için. Açılır pencerede, UIImage Sınıf Referansı'u seçin. Aradığınız başlatıcı vardır:

    + imageNamed:
    belirtilen dosya ile ilişkili görüntü nesnesi döndürür.

    Bildirgesi
    SWIFT
    init?(named name: String) -> UIImage

    AMAÇ-C
    + (UIImage *)imageNamed:(NSString *)name

    Parametreler
    adı dosyanın adı. Görüntü ilk kez yüklendiyse, yöntemi, uygulamanın ana paketinde belirtilen ada sahip bir görüntü arar.

    Dönüş Değeri Belirtilen dosya için resim nesnesi veya yöntem belirtilen görüntüyü bulamadığında null.

    Swift ise, tabii ki, sen init arayarak doğrudan başlatıcıları demiyorlar. Bunun yerine, bu durumda sınıf adını UIImage kullanın. name, parametrenin iç adıdır ve ?, bunun nil döndürebilecek bir başlatılamıyor olduğunu bildirir, bu nedenle aslında bu başlatıcı UIImage? değerini döndürür. Yani init?(named name: String) -> UIImage'a bakmalı ve UIImage(named: String) -> UIImage?'u düşünmelisiniz.

  3. başlık dosyaları:

    sizin koduna Tip UIImage veya Bahçesi ve üzerinde Komuta tuşa tıklayın. Bu, UIImage için başlık dosyası bilgilerini getirir. Listelenen ilk başlatıcı geçerli:

    init?(named name: String) -> UIImage // load from main bundle 
    

Sen başlıklarını okuyarak çok şey öğrenebilir. Sık sık kontrol etmenizi tavsiye ederim.

1

1) "Önbelleğe Alınan Görüntü Yükleme Rutinleri" bölümünde. Belki de belgelere Swift kodu geçmek gerekiyor?

2) Öğreticiler ve kod örnekleri, dil, platform ve iyi uygulamaların öğrenilmesi için iyidir. Referanslar dersi ile yedekleyebilirsiniz.

+0

Belgelerdeki Swift koduna nasıl geçersiniz? –

+0

Her sınıfın belgelendirme sitesinin sağ üst köşesinde "Dil: Objective-C Swift Both" var. Sadece ihtiyacın olanı seç. –

+0

"Her sınıf dokümantasyon sitesinin sağ üst köşesinde?" Xcode'daki yardım penceresinden mi demek istiyorsun? Tam olarak nerede ve neyin yakınında? Ben göremiyorum. –

4

Zor olan, Swift'in başlatıcılarla uğraşma şeklidir. Ücretsiz "Swift Programlama Dili" iBook'u "satın almanızı" ve başlatıcıların bölümünü okumanızı öneriyorum.

"Init" sözcüğü bir başlatıcı bildirgesinde görünür, ancak bu sözcüğü çağırırken init sözcüğünü kullanmazsınız.

beyan soru işareti, bir "failable" başlatıcı olduğunu söyler

init?(named name: String) -> UIImage 

olduğunu. Bu initWithFrame: gibi init yöntemleri için daha karmaşık alır

UIImage(named: "name") 

: sonra

yerine kelime init ile çağıran, bunun yöntemi adı sanki sınıf adını koydu ve parametreleri. Bu durumda "ile" ayrıştırır ve bir "çerçeve" parametresi oluşturur.

Burada her şeyi ele almayacağım. (Ben hala nüansları öğreniyorum.) Dediğim gibi, Swift iBook'daki başlatıcılar hakkındaki bölümü okuyun.

İlgili konular