在 Xcode 中自动组织#imports 的方法

问题描述 投票:0回答:9

我喜欢 Eclipse 中的“组织导入”命令,它可以隐式添加和删除导入到源文件中的类(如在 Java 或 ActionScript 中)。

Xcode 中是否有命令可以根据文件中引用的类来更新 .m Objective-C 文件顶部的

#import
指令?

xcode import keyboard-shortcuts
9个回答
82
投票

您可以通过创建一个 Automator 操作并在 Xcode 以及 Mac OS X 中的任何地方使用它来完成此操作。为此,请执行以下操作:

  1. 启动 Automator -> 新建
  2. 选择“快速操作”(或旧版 MacOS/Automator 版本上的“服务”)
  3. 添加“运行 shell 脚本”操作
  4. 使用
    sort | uniq
    作为脚本并选中“输出替换所选文本”复选框
  5. 保存并命名(例如“排序和唯一”)
  6. 选中“输出替换所选文本”

保存后,您只需在 Xcode 中选择导入,右键单击并选择“排序和唯一”操作即可组织导入。

这不如 Eclipse 或 IntelliJ 中组织导入操作那么好,因为它不会删除未使用的内容等。但总比没有好。

PS:从 WWDC 2012 会议中获得 - 会议 402 使用 Xcode 高效工作(从 6:15 开始)

编辑

我开始使用 AppCode,JetBrains 的 Objective-C IDE,它具有“组织导入”等功能。您应该查看一下:http://www.jetbrains.com/objc/


3
投票

我正在解决此问题,因为当前不是 Xcode 的功能:(


3
投票

我发现 Cedar Shortcuts 至少是可用的。它不如 Eclipse 的导入功能(它不组织导入),但它可以让您不必转到类文件的顶部并键入导入语句。使用此插件,您只需将光标放在需要导入的类上,然后按 Ctrl + Option + I。这是 github 项目。 https://github.com/cppforlife/CedarShortcuts


2
投票

我制作了一个小型 Xcode 插件来对标题进行排序并使用快捷方式删除文件的重复项,您可以查看一下! - https://github.com/insanoid/CleanHeaders-Xcode


1
投票

Jetbrains 的 AppCode 可以做到这一点。


1
投票

Swiftlint 有一个选择加入规则,如果选择,将自动按字母顺序对导入进行排序。

- sorted_imports
添加到 .swiftlint.yml 文件中的
opt_in_rules
下。

在项目根目录(与存储 swiftlint.yml 相同的位置)运行

swiftlint --fix
终端命令。


0
投票

是的。就像在 Eclipse 中一样,这将是一个很棒的功能,因为在 XCode (Cocoa Touch) 中进行开发确实需要大量的类导入,而这些导入并不容易记住,而 Eclipse 中的 Android 开发通过简单的按键组合来解决这个问题,从而节省了大量时间!希望 XCode 尽快有办法做到这一点!


0
投票
Devon Technologies 的

WordService(免费软件)提供了一项可在任何可以(除其他外)对行进行排序的 Cocoa 应用程序中使用的服务。


0
投票

或者,您可以使用 Xcode 扩展,例如 Imp

© www.soinside.com 2019 - 2024. All rights reserved.