

Swift3でpythonを呼び出そうと思い以下のサイトを参考にしました。  
<https://github.com/ndevenish/Site-
ndevenish/blob/master/_posts/2016-06-20-using-python-with-swift.markdown>

[code]

    import Cocoa
    
    NSApplicationMain(Process.argc, Process.unsafeArgv)
    
[/code]

の"Process.argc"で Type'Process'has no member'argc'とエラーを吐きます。  
助けてください。  
説明ではmain.swiftファイルを作成して上記のコードを書くだけのことでした。


CC BY-SA 3.0
2017-06-30T05:26:11.917
35989
2017-06-30T06:11:12.303
24128
question
swift python xcode swift3
Swift3 NSApplicationMainについて


StackOverflowに[似たような質問](https://stackoverflow.com/questions/24009050/how-do-i-
access-program-arguments-in-swift)がありました。

[Process](https://developer.apple.com/documentation/foundation/process)には`argc`は無く、`arguments`で参照するようです。  
[CommandLine](https://developer.apple.com/documentation/swift/commandline)には`argc`がありますね。

StackOverflowでの質問によると`CommandLine`はSwift2の頃は`Process`と呼ばれていたようなので、参考にされているURLでの`Process.argc`の記載は単純に更新漏れでは無いでしょうか。  
参考先のGitHubで「ミスがあります」と指摘してあげると喜ばれるかもしれません。


CC BY-SA 3.0
2017-06-30T06:10:38.563
35991
2017-06-30T06:10:38.563
20272
35989
answer


掲載リンクの記事は日付が2016-06-20とありますから、まだSwift
3の正式版がリリースされる前の記事のようです。Swift3版へのリンクがうまく埋めこまれていませんが、[こちら](https://github.com/ndevenish/Site-
ndevenish/blob/master/_posts/2017-04-11-using-python-with-
swift-3.markdown)だと思われます。

そちらの記事中ではこのようなコードになっています。

[code]

    import Cocoa
    
    exit(NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv))
    
[/code]

Swift Standard Libraryの`Process`クラスはSwift 3で`CommandLine`に名称が変わりました。

[CommandLine](https://developer.apple.com/documentation/swift/commandline)

記事内容の詳細までは読んでいないので、なぜ`exit()`で囲む必要があったのかまではよくわかりませんが。

Swift3まではバージョンによる変更点がかなり大きいので、ネット上でSwiftの記事を参考にされる場合には、十分注意された方がいいでしょう。


CC BY-SA 3.0
2017-06-30T06:11:12.303
35992
2017-06-30T06:11:12.303
13972
35989
answer