一尘不染

如何获取Cocoa API的Swift“头”文件?

swift

我知道可以通过自动单击Xco​​de中的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版本?最好从命令行?


阅读 225

收藏
2020-07-07

共1个答案

一尘不染

Swift REPL包含一个助手 :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: 我更喜欢忽略博客文章中的文件输出,以便我可以通过其他方式使用此脚本,而不仅仅是文件生成

2020-07-07