我刚创建了我的第一个Swift项目,在AppDelegate.swift一个类声明上面有一行 - 为什么它在那里?!
...
import UIKit
import CoreData
@UIApplicationMain // <- WHY IS IT HERE?
class AppDelegate: UIResponder, UIApplicationDelegate {
...
Run Code Online (Sandbox Code Playgroud) 我正在尝试在macOS Sierra上的Xcode 8(稳定版)中创建一个没有故事板的macOS应用程序.但是,我AppDelegate甚至没有被发起.这是我的代码:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
var window: NSWindow!
override init() {
super.init()
print("Init")
}
func applicationDidFinishLaunching(_ aNotification: Notification) {
print("Finished launching")
// Create a window
window = NSWindow()
// Add the view controller
let viewController = ViewController()
window.contentView?.addSubview(viewController.view)
// Show the window
window.makeKeyAndOrderFront(nil)
}
}
Run Code Online (Sandbox Code Playgroud)
无论是init或applicationDidFinishLaunching(_ aNotification: Notification)将被调用.任何帮助将非常感激.
在我的ios(swift)应用程序中,我创建了main.swift,我在其中设置一个全局变量来检查NSDefault以检查删除的广告.
然后在每个viewcontroller中,我首先检查该全局变量,并在显示视图之前删除广告.
问题是xcode不喜欢AppDelegate.swift中的@UIApplicationMain,因为我有一个main.swift.如果删除@UIApplicationMain行,应用程序会在启动时崩溃.
我实现main.swift错了吗?
根据IOS开发人员库,请访问:https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/FirstTutorial.html
main.m中的main函数在自动释放池中调用UIApplicationMain函数.
但是,在XCode 6.3中,似乎不再存在"main.m"文件.是什么取代了"main.m"文件?
谢谢.