0

ご存知のように、Xcode で作成されたファイルの名前は、オプション "Refactor -> Rename" (@interface キーワードの後に​​クラス名を選択) で変更できます。

うまく機能しますが、ヘッダーコメントからクラス名を変更/名前変更しないことがわかりました。これはマイナーなものであることは知っていますが、「名前の変更」オプションのデフォルトの動作ですか、それとも何か間違ったことをしているのでしょうか? ヘッダーコメントにも反映させる解決策は?

ありがとう

4

3 に答える 3

0

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

于 2015-09-30T15:27:43.867 に答える
0

リファクタリングはコード内のシンボルのみを探します...つまり、何も悪いことをしていないということです。

名前が のようなものAMGMainViewTableControllerである場合、問題なく「検索と置換」(編集->検索->ワークスペースでの検索と置換) を実行できるはずです...しかし、短くて具体的でないクラスでそれを行うことは避けたいと思いますなどのより大きな名前の一部である可能性がある名前は、AMGMainViewTableと競合しAMGMainViewTableControllerます。

于 2013-08-28T12:24:47.127 に答える