我知道可以通过自动单击Xcode中的Cocoa类型来查看自动翻译的Cocoa API的Swift版本的方式。例如,这是为UITableViewController生成的内容:
class UITableViewController : UIViewController, UITableViewDelegate, NSObjectProtocol, UIScrollViewDelegate, UITableViewDataSource { init(style: UITableViewStyle) var tableView: UITableView! var clearsSelectionOnViewWillAppear: Bool // defaults to YES. If YES, any selection is cleared in viewWillAppear: var refreshControl: UIRefreshControl! }
有没有其他方法可以使Xcode生成此Swift版本?最好从命令行?
Swift REPL包含一个助手 :print_decl <name> - print the AST representation of the named declarations
:print_decl <name> - print the AST representation of the named declarations
这篇博客文章解释了如何编写一个简单的脚本来帮助您使用它来生成特定类型的文档。我更新了脚本以允许使用OS X
#! /bin/sh # usage: <shellscript> [--osx] typename if [ "$1" = "--osx" ] ; then echo "import Cocoa\n:print_decl $2" | xcrun swift -deprecated-integrated-repl else sdk_path=$(echo `xcrun --show-sdk-path` | sed 's#MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk#iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk#') echo "import UIKit\n:print_decl $1" | xcrun swift -deprecated-integrated-repl -sdk "$sdk_path" fi
注意1: 该脚本默认为使用iOS SDK。如果要使用OS X SDK,请使用“ –osx”选项作为第一个参数
注意2: 我更喜欢忽略博客文章中的文件输出,以便我可以通过其他方式使用此脚本,而不仅仅是文件生成