main()Hızlıda hiçbir yöntem yoktur . Program yürütmeye bir yerden başlamalıdır. Peki, hızlı kod çalıştırmanın giriş noktası nedir ve buna nasıl karar verilir?
Yanıtlar:
Düz bir Swift modülündeki giriş noktası, adı verilen modüldeki dosyadır main.swift. main.swiften üst düzeyde ifadelere ve ifadelere sahip olmasına izin verilen tek dosyadır (modüldeki diğer tüm Swift dosyaları yalnızca bildirimler içerebilir).
Cocoa Touch , giriş noktasını işaretlemek için bir dosya yerine bir uygulamadaki @UIApplicationMainözniteliği kullanır . Kakao asgari kullanmak için kullanılan basitçe adlı dosyayı , ancak Xcode 6.1 itibariyle kullandığı özelliğini bir uygulanmasına ilişkin .UIApplicationDelegatemain.swiftmain.swiftNSApplicationMain@NSApplicationMainNSApplicationDelegate
main.swift, Destekleyici Dosyalar grubundadır ve basitçe arama yapmak için yapılandırılır NSApplicationMain.
main.swift.
Gelen AppDelegate.swiftdosyanın Gördüğünüz @UIApplicationMain.
AppDelegate, ilk giriş dosyasıdır.
Temel olarak: main.mve bir AppDelegate.mnevi SwiftsadeceAppDelegate.swift
Dosyaları ve Başlatma'yı okumak isteyebilirsiniz
Bunun istisnası, bir oyun alanı dosyası gibi davranan ancak uygulamanızın kaynak koduyla oluşturulmuş "main.swift" adlı özel bir dosyadır. "Main.swift" dosyası üst düzey kod içerebilir ve siparişe bağlı kurallar da geçerlidir. Gerçekte, "main.swift" de çalıştırılacak ilk kod satırı, program için ana giriş noktası olarak dolaylı olarak tanımlanır. Bu, minimum Swift programının tek bir satır olmasına izin verir - bu satır "main.swift" de olduğu sürece.
Xcode'da, Mac şablonları varsayılan olarak bir “main.swift” dosyası içerir, ancak iOS uygulamaları için yeni iOS proje şablonları için varsayılan, normal bir Swift dosyasına @UIApplicationMain eklemektir. Bu, derleyicinin iOS uygulamanız için bir ana giriş noktası sentezlemesine neden olur ve "main.swift" dosyası ihtiyacını ortadan kaldırır.
Alternatif olarak, projeleri Objective-C'den Swift'e aşamalı olarak taşırken yaygın olan, Objective-C'de yazılmış ana uygulamanın bir uygulamasına bağlanabilirsiniz.
Swift 5.3'te @main, giriş noktanızın sadece projenizde nerede olduğunu kontrol etmenizi sağlayan yeni bir özellik var main.swift. Yalnızca bir ana giriş olabilir main.swiftve bir dosyanız ve bir özniteliğiniz olamaz @main. Daha fazla ayrıntı için https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md adresine bakın.
@main
struct App {
static func main() {
print("Starting.")
}
}
Swift uygulamalarında özellikler vardır:
@UIApplicationMain (Kakao Dokunuşu)@NSApplicationMain (Kakao)bu, hızlı derleyiciye uygulamanın giriş noktasının nerede olduğunu söyler.
Hızlı derleyicinin maintemelde yaptığı şey , temelde Objective-C uygulamalarındakiyle aynı görünen ve bu yöntemi uygulamanın giriş noktası olarak değerlendiren bir işlev oluşturmasıdır (uygulama işlemi başladığında çağrılan ilk yöntem).
Swift derleyicisinin Mainözniteliklerle neler yaptığı , işletim sisteminin uygulamanın giriş noktasının nerede olduğunu nasıl bildiği hakkında daha fazla bilgi edinmek istiyorsanız, bu makaleyi okumanızı tavsiye ederim: iOS uygulaması giriş noktasını anlama
main.swifthiçbir yerde dosya bulamıyorum. Bu dosyanın yeri nedir?