繁体   English   中英

Xcode重构文件名

[英]Xcode refactor name of file

众所周知,我们可以通过“重构->重命名”选项更改Xcode中创建的文件的名称(通过在@interface关键字之后选择类名称)。

它运行良好,但是我发现它不会更改/重命名标题注释中的类名称。 我知道这是次要的,但只是想知道,这是“重命名”选项的默认行为,还是我做错了什么? 在标题注释中反映它的解决方案是什么?

谢谢

您必须手动搜索并替换所有出现的旧文件名。 Xcode的重构工具非常有限。 Xcode无法自动重命名注释中的标记。

如果您经常重构代码,则可能需要查看AppCode ,它是一种拥有更好重构工具的Objective-C IDE。 AppCode可以在注释中重命名标记。

重构仅在代码中寻找符号……这意味着您没有做错任何事情。

如果名称类似于AMGMainViewTableController ,则应该可以进行“查找并替换”(在工作区中“编辑”->“查找”->“查找并替换”)...但是我会避免使用较短,不太具体的内容类名称可能是较大名称的一部分,例如AMGMainViewTable ,它将与AMGMainViewTableController冲突。

我已经编写了一个bash脚本,您可以将其添加到Xcodes行为中,并在需要时手动执行它。 当然,它也可以在构建阶段中使用。

重命名

cd $XcodeWorkspacePath
cd ..

find * -type f \( -name '*.h' -or -name '*.m' -or -name '*.mm' -or -name '*.swift' \) -exec sh -c '
  for file do
    filename=$(basename "$file")
    if egrep -m1 "(\/\/  .*(\.h|\.m{1,2}|\.swift)+ *$)" "$file"
    then
      if grep -Fxq "//  $filename" "$file"
      then
        echo "$file - Correct"
        continue;
      else
        sed -E -i.bak "s/(\/\/  .*(\.h|\.m{1,2}|\.swift)+ *$)/\/\/  $filename/" "$file"
        echo "$filename - Wrong\n^^^^^^^^^^^^^^^^^^^^^^^^^^"
      fi
    fi
  done
' sh {} + &> rename.out 

不要忘记使脚本可执行

chmod + x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM