在我的ios(swift(应用程序中,我创建了main.swift其中我正在设置一个全局变量来检查NSDefault以检查已删除的广告。
然后,在每个视图控制器中,我首先检查该全局变量,并在显示视图之前删除广告(如果合适(。
问题是 Xcode 不喜欢 AppDelegate 中的@UIApplicationMain.swift因为我有一个主.swift。如果我删除该行@UIApplicationMain应用程序会在启动时崩溃。
我实现主要.swift错了吗?
您的主文件需要如下所示.swift:
import Foundation
import UIKit
// Your initialization code here
UIApplicationMain(C_ARGC, C_ARGV, nil, NSStringFromClass(AppDelegate))
UIApplicationMain
将启动事件循环并阻止应用退出。
C_ARGC
和 C_ARGV
是 Swift 变量,表示通过 main 传入的 C 参数,即 int argc
和 char *argv[]
。
2016-01-02更新: C_ARGC
和C_ARGV
分别被Process.argc
和Process.unsafeArgv
取代。[来源]
Swift 中访问程序参数的问题的非常好的答案? 从达拉尔斯基...
Swift 3 语法为:
//
// main.swift
//
import Foundation
import UIKit
// very first statement after load.. the current time
let WaysStartTime = CFAbsoluteTimeGetCurrent()
// build the parameters for the call to UIApplicationMain()
let argc = CommandLine.argc
let argv = UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer<Int8>.self, capacity: Int(CommandLine.argc))
// start the main loop
UIApplicationMain(argc, argv, nil, NSStringFromClass(AppDelegate.self))
并且不要忘记从 AppDelegate 中删除"@UIApplicationMain".swift因为它是多余的并导致编译器错误。
Swift 5 中main.swift
的外观
Hardy_Germany的答案在 Xcode 10.2 中给出了警告。
//
// main.swift
// TopLevelCode
//
// Created by Stoyan Stoyanov on 04/04/2019.
// Copyright © 2019 Stoyan Stoyanov. All rights reserved.
//
import UIKit
import Foundation
UIApplicationMain(CommandLine.argc, CommandLine.unsafeArgv, nil, NSStringFromClass(AppDelegate.self))
同样不要忘记从您的应用程序代表中删除@UIApplicationMain
标签 在此处阅读更多相关信息
Swift 1.2 格式:
UIApplicationMain(Process.argc, Process.unsafeArgv, nil, NSStringFromClass(AppDelegate))