将所有方法自动放入.h文件中

时间:2012-02-08 11:28:25

标签: iphone objective-c methods

在实现文件(.m)中我有30个..方法。如何自动将他们的描述(所有这些)放入.h文件中?

3 个答案:

答案 0 :(得分:2)

使用正则表达式难以正确接缝,但您可以使用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 ";"
    }
  } 
}

答案 1 :(得分:0)

编写一段代码,提取所有方法定义(使用正则表达式检测它们),然后将其添加到h文件和“\; \ n”。

答案 2 :(得分:0)

程序Accessorizer(在Mac App Store上只需5美元)专门用于Xcode中这些令人讨厌的工作问题。它可以生成原型以及属性合成,访问器,inits等。

警告:在我的经历中,它的边缘有点敏感和粗糙。例如,它可能没有意识到函数在多行注释中,因此为它提供了不需要的原型。但即使考虑到这些怪癖,它也为我节省了超过5美元的时间。

他们的网站:http://www.kevincallahan.org/software/accessorizer.html