当前位置: 首页 > 面试题库 >

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

齐鹏程
2023-03-14
问题内容

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


问题答案:

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



 类似资料:
  • 问题内容: 我在用 这些代表从我的画廊或我的相机中选择图像。那么,选择图像后如何获得图像文件的大小? 我想使用这个: 但是在这里我需要一个路径,但是如果没有路径,如何仅通过图像文件就能获得路径呢? 问题答案: 请检查google的1 kb到1000字节。 https://www.google.com/search?q=1+kb+%3D+how+many+bytes&oq=1+kb+%3D+how+

  • 问题内容: 这是要求 我想得到这个。 我试过了 它记录。我如何获得价值,为什么会有价值? 问题答案: “ [userId:null]”通常是DOM元素的“ toString”打印输出。如果您执行类似操作,则很有可能 您将看到它是somesort的DOM元素子类。因此,类似: 可能会打印文本节点。

  • 问题是无法从$HTTP响应头中获取文件名 HTTP/1.1 200 OK 内容-长度:121257 内容-类型:Application/PDF 服务器:Microsoft-HTTPAPI/2.0 访问控制-允许-起源:* 访问控制-暴露-标头:* 内容-处置:附件;filename=order-414.pdf 日期:2015年2月11日星期三05:32:25 GMT 我只想在下载时获得文件名(or

  • 问题内容: 我正在尝试使前置摄像头具有实时取景。我可以使用以下方法获取后置摄像头: 但是我似乎找不到找到前置摄像头的方法。如何更改上面的代码以使用前置摄像头? 问题答案: 这是我的一个项目的工作示例,用于获取前置摄像头。这是在Objective-C中实现的,但事实证明它是可行的,并且足够容易转换为快捷方式。 在Swift 3.2+中:

  • 我有下面的Kafka流代码 现在我们的一个客户端正在发送关于kafka标头的版本信息,如下所示。 基于这个标题,我需要为我的消息选择解析器,如何使用KStream操作符读取这个标题?我看过流的所有API,但没有方法给出头 我不能改成普通的kakfa消费者,因为我的应用程序已经依赖于少数KStream API。。

  • 问题内容: 我尝试了几种方法来获取文件大小,但始终为零。 我在日志中: 问题答案: 使用而不是 +调用attr上的.fileSize()。 在Swift 2.0中,我们使用do try catch模式,如下所示: 在Swift 3.x / 4.0中: