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.swift
en ü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 .UIApplicationDelegate
main.swift
main.swift
NSApplicationMain
@NSApplicationMain
NSApplicationDelegate
main.swift
, Destekleyici Dosyalar grubundadır ve basitçe arama yapmak için yapılandırılır NSApplicationMain
.
main.swift
.
Gelen AppDelegate.swift
dosyanın Gördüğünüz @UIApplicationMain
.
AppDelegate, ilk giriş dosyasıdır.
Temel olarak: main.m
ve bir AppDelegate.m
nevi Swift
sadeceAppDelegate.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.swift
ve 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 main
temelde 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.swift
hiçbir yerde dosya bulamıyorum. Bu dosyanın yeri nedir?