一尘不染

如何在不使用情节提要的情况下创建新的Swift项目?

swift

在XCode 6中创建一个新项目不允许禁用Storyboard。您只能选择Swift或Objective-C,而不能使用Core Data。

我尝试删除情节提要,并从项目中删除主情节提要,然后从didFinishLaunching手动设置窗口

在AppDelegate中,我有以下内容:

class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow
var testNavigationController: UINavigationController

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {

        testNavigationController = UINavigationController()
        var testViewController: UIViewController = UIViewController()
        self.testNavigationController.pushViewController(testViewController, animated: false)

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

        self.window.rootViewController = testNavigationController

        self.window.backgroundColor = UIColor.whiteColor()

        self.window.makeKeyAndVisible()

        return true
    }
}

但是,XCode给我一个错误:

类“ AppDelegate”没有初始化程序

有人成功吗?


阅读 211

收藏
2020-07-07

共1个答案

一尘不染

您必须将windowtestNavigationController变量标记为可选:

var window : UIWindow?
var testNavigationController : UINavigationController?

Swift类要求在实例化期间初始化非可选属性:

类和结构必须在创建该类或结构的实例时将其所有存储的属性设置为适当的初始值。存储的属性不能处于不确定状态。

可选类型的属性会自动使用nil值进行初始化,这表明该属性在初始化过程中故意有“没有值”的意图。

使用可选变量时,请记住用来将它们解包!,例如:

self.window!.backgroundColor = UIColor.whiteColor();
2020-07-07