ご存知のように、Xcode で作成されたファイルの名前は、オプション "Refactor -> Rename" (@interface キーワードの後にクラス名を選択) で変更できます。
うまく機能しますが、ヘッダーコメントからクラス名を変更/名前変更しないことがわかりました。これはマイナーなものであることは知っていますが、「名前の変更」オプションのデフォルトの動作ですか、それとも何か間違ったことをしているのでしょうか? ヘッダーコメントにも反映させる解決策は?
ありがとう
ご存知のように、Xcode で作成されたファイルの名前は、オプション "Refactor -> Rename" (@interface キーワードの後にクラス名を選択) で変更できます。
うまく機能しますが、ヘッダーコメントからクラス名を変更/名前変更しないことがわかりました。これはマイナーなものであることは知っていますが、「名前の変更」オプションのデフォルトの動作ですか、それとも何か間違ったことをしているのでしょうか? ヘッダーコメントにも反映させる解決策は?
ありがとう
Xcode の動作に追加して、必要に応じて手動で実行できる bash スクリプトを作成しました。もちろん、ビルド段階でも使用できます。
名前の変更.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
リファクタリングはコード内のシンボルのみを探します...つまり、何も悪いことをしていないということです。
名前が のようなものAMGMainViewTableController
である場合、問題なく「検索と置換」(編集->検索->ワークスペースでの検索と置換) を実行できるはずです...しかし、短くて具体的でないクラスでそれを行うことは避けたいと思いますなどのより大きな名前の一部である可能性がある名前は、AMGMainViewTable
と競合しAMGMainViewTableController
ます。