実装ファイル(.m)には30個のメソッドがあります。どのように私は彼らの説明(すべて)を自動的に.hファイルに入れることができますか?すべてのメソッドを自動的に.hファイルに入れます
答えて
正規表現を適切に行うのは難しい継ぎ目が、あなたはawkのでそれを行うことができます。
https://gist.github.com/1771131
#!/usr/bin/env awk -f
# print class and instance methods declarations from implementation
# Usage: ./printmethods.awk class.m or awk -f printmethods.awk class.m
/^[[:space:]]*@implementation/ {
implementation = 1;
}
/^[[:space:]]*@end/ {
implementation = 0;
}
/^[[:space:]]*[\-\+]/ {
if(implementation) {
method = 1;
collect = "";
}
}
/[^[:space:]]/ {
if(implementation && method) {
p = index($0, "{");
if(p == 0) {
if(collect == "")
collect = $0
else
collect = collect $0 "\n";
} else {
method = 0;
# trim white space and "{" from line end
gsub("[\{[:space:]]*$", "", $0);
collect = collect $0;
# trim white space from start
gsub("^[[:space:]]*", "", collect);
print collect ";"
}
}
}
私のために働いていない、構文エラーがあると言います – LightNight
私はコピー/貼り付けを試みましたそれはうまく動作します。どのようにそれを実行するのですか?あなたはファイルに入れて、ターミナルからそれを走らせるべきです。 –
私はエラーを吸う持つ: 'awkは:ソース1行目のソースファイルprintmethods.awkで構文エラーが コンテキストが \tです>>> {\ <<< RTF1 \ ANSI \ ansicpg1251 \ cocoartf1038 \ cocoasubrtf350 のawk:ソース行で違法な文を2ソースファイルprintmethods.awk awk:ソース行2での不正なステートメントprintmethods.awk \t 2が欠けている} ' – LightNight
プログラム($ 5 MacのApp Storeで)Accessorizerは、特にこれらのために意図されてXcodeの不愉快で面倒な仕事の問題。プロトタイプだけでなく、プロパティの合成、アクセサ、入れ子などを生成することができます。
警告:私の経験では、ちょっと厄介で荒いです。たとえば、ある関数が複数行のコメントの中にあることに気付かず、そのために望ましくないプロトタイプを提供するかもしれません。しかし、それらの癖を念頭に置いていても、5ドル以上の時間を節約できます。
ウェブサイト:http://www.kevincallahan.org/software/accessorizer.html
すべてのメソッドを.hに入れてください。すべての方法を取ってプライベートカテゴリに入れるスクリプトを作成する方が良いかもしれません – wattson12