ध्यान दें कि सिंटैक्स को XCode 10.1 और स्विफ्ट 5 के लिए जून 2019 में अपडेट किया गया है ( यहां मैट के जवाब का श्रेय और && तुंग फैमिली का जवाब ), यदि आप पिछले सिंटैक्स की तलाश कर रहे हैं तो एडिट सेक्शन को देखें।
ठीक है, मैंने इसका हल ढूंढ लिया है
सबसे पहले, मैंने देखा है कि, AppDelegate.swift फ़ाइल के शीर्ष पर, यह रेखा है
@UIApplicationMain
चूंकि यह रेखा किसी भी दायरे से बाहर है (यह फ़ाइल स्तर पर है), इसे तुरंत निष्पादित किया जाता है, और मुझे लगता है कि संकलक इसे मानक मानक फ़ंक्शन में अनुवाद करता है।
इसलिए, मैंने यह किया, एक नई स्विफ्ट-ओनली एप्लिकेशन से शुरुआत की:
- टिप्पणी की गई
@UIApplicationMain
- इस तरह एक main.swift फ़ाइल को जोड़ा (FLAPlication मेरी उपवर्ग है)। फ़ाइल को
महत्वपूर्ण रूप से नामांकित होना आवश्यक है । मुख्य, अन्य फ़ाइलों पर शीर्ष स्तर के बयान समर्थित नहीं हैं! आप किसी अन्य फ़ाइल के अंदर UIApplicationMain () कॉल नहीं जोड़ सकते, अन्यथा आपको यह त्रुटि प्राप्त होगी:
शीर्ष स्तर पर अभिव्यक्तियों की अनुमति नहीं है
यह main.swift फाइल है
UIApplicationMain(
CommandLine.argc, CommandLine.unsafeArgv,
NSStringFromClass(FLApplication.self), NSStringFromClass(AppDelegate.self)
)
फिर, इस कोड के साथ UIApplication subclass, FLApplication.swift के लिए एक स्विफ्ट फ़ाइल बनाएं:
import UIKit
import Foundation
class FLApplication: UIApplication {
override func sendEvent(_ event: UIEvent) {
super.sendEvent(event)
print("send event")
}
}
अब, UIApplication सही ढंग से उप-वर्गित है और आप लॉग में "ईवेंट भेजें" संदेश देखेंगे
संदर्भ के लिए OLD EDITS , चूंकि यह संस्करण 1 से संस्करण 3 में बहुत बदल गया है, मैं यहां पिछले सभी संपादन छोड़ता हूं
EDIT - मार्च 2015
हू UIApplicationMain
जुनफेंग द्वारा टिप्पणी के रूप में अब के बारे में स्पष्टीकरण और main.swift फ़ाइल स्विफ्ट भाषा संदर्भ के गुण अनुभाग में प्रलेखित हैं: लिंक
जैसा कि थॉमस वर्बेक ने XCode 6.3 बीटा में टिप्पणी की है, आप पा सकते हैं कि C_ARGC और C_ARGV का नाम बदलकर क्रमशः Process.argc और Process.unsafeArgv कर दिया गया है। आपके UIApplicationMain कॉल को main.swift फाइल में अपडेट करना होगा:
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(FLApplication), NSStringFromClass(AppDelegate))
प्री-एक्सकोड 8 सिंटेक्स था
import Foundation
import UIKit
UIApplicationMain(C_ARGC, C_ARGV, NSStringFromClass(FLApplication), NSStringFromClass(AppDelegate))
EDIT - DEC 2016
बीटा 6 से पहले Xcode 8 के लिए समाधान
import Foundation
import UIKit
UIApplicationMain(
CommandLine.argc,
UnsafeMutableRawPointer(CommandLine.unsafeArgv)
.bindMemory(
to: UnsafeMutablePointer<Int8>.self,
capacity: Int(CommandLine.argc)),
NSStringFromClass(FLApplication.self),
NSStringFromClass(AppDelegate.self)
)
UIApplicationMain()
वर्ग का नाम जोड़ने के लिए पैरामीटर बदलना बेहतर क्यों होगाNSPrincipalClass
?