2017-01-20 113 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

相關問題