簡體   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