2017-01-20 80 views
0

我目前正在研究一个包含许多文件的项目,而且我有时只是在没有构建和运行整个目标的情况下运行一段代码。是否有可能在Xcode中运行一个Swift文件main()?

有没有办法做到这一点,喜欢它与Android Studio中通过简单地创建一个:

public static void main(String[] args) { 
    // Some random code 
} 

我只找到一些提示,这样做与海湾合作委员会,仅适用于ObjC代码。 另外,使用在线沙箱也不起作用,因为我需要在我的项目中引用不同的类型。

+0

看看xCode游乐场。 – Connor

+0

XCTests会同样工作 –

+0

我试过你的解决方案,但是当你只想快速运行几行代码时,我发现它太多了。 – Louis

回答

1

一个main.swift文件添加到包含此代码项目中:

import UIKit 
UIApplicationMain(
    CommandLine.argc, 
    UnsafeMutableRawPointer(CommandLine.unsafeArgv) 
     .bindMemory(
      to: UnsafeMutablePointer<Int8>.self, 
      capacity: Int(CommandLine.argc)), 
    nil, 
    NSStringFromClass(AppDelegate.self) 
) 

现在找到您的应用程序委托快捷文件并删除术语@UIApplicationMain

现在构建和运行,来证明自己的应用程序仍然工作......

现在你可以注释掉UIApplicationMain呼叫并根据需要添加顶级代码。但请注意,这可能无法按预期工作,因为您现在正尝试在应用程序框架之外进行操作。

+0

通过删除术语@UIApplicationMain,然后用您的代码片断创建main.swift文件,我得到以下错误: _expressions不允许在顶层_0 – Louis

+0

@Slowbro显然我不知道_you_做了什么。但我向你保证,这确实有效。你可以从我的书下载一个工作示例项目,在这里:https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/bk1ch06p297main/bk1ch06p297main – matt

相关问题