我们知道我们可以通过选项" Refactor - >更改在Xcode中创建的文件的名称。重命名" (通过在@interface关键字后选择类名)。
效果很好,但我发现它不会从标题注释中更改/重命名类名。我知道这是次要的,但只是想知道,这是"重命名"的默认行为。选项还是我做错了什么?什么是在标题评论中反映它的解决方案?
由于
答案 0 :(得分:0)
您必须手动搜索并替换旧文件名的所有匹配项。 Xcode的重构工具非常有限。 Xcode无法在评论中自动重命名令牌。
如果您经常重构代码,您可能需要查看AppCode,这是一种具有更好重构工具的Objective-C IDE。 AppCode可以在评论中重命名令牌。
答案 1 :(得分:0)
重构只在代码中查找符号...这意味着你没有做错任何事。
如果名称类似于AMGMainViewTableController
,您应该可以毫无问题地执行“查找和替换”(编辑 - >查找 - >查找和替换工作区中)......但是我d避免使用较短的,不太具体的类名称来执行此操作,这些类名称可能属于较大的类名称,例如AMGMainViewTable
,这会与AMGMainViewTableController
冲突。
答案 2 :(得分:0)
我编写了一个bash脚本,您可以将其添加到Xcodes行为中,并在需要时手动执行它。当然,它也可以用于构建阶段。
rename.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