0

正如我们所知,我们可以通过选项“Refactor -> Rename”(通过在@interface 关键字之后选择类名)来更改在 Xcode 中创建的文件的名称。

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

谢谢

4

3 回答 3

0

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

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

于 2013-08-28T12:21:08.267 回答
0

重构只在代码中寻找符号......这意味着你没有做错任何事情。

AMGMainViewTableController如果名字类似于可能是较大名称的一部分的名称,例如 与AMGMainViewTable冲突AMGMainViewTableController

于 2013-08-28T12:24:47.127 回答
0

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

重命名.sh

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

于 2015-09-30T15:27:43.867 回答