【问题标题】:Are Objective-C function names stored in text?Objective-C 函数名称是否存储在文本中?
【发布时间】:2010-05-09 18:50:11
【问题描述】:

我不记得我在哪里听说过它,(我想我正在搜索选择器的工作原理,结果它与回调函数不完全相同),我无法确认。但更重要的是,有没有办法从另一个应用程序中获取函数名称列表?

【问题讨论】:

  • 您真正在寻找什么?你是指 C 风格的函数还是 Objective-C 的方法?你想调用它们还是只列出导出的符号?
  • @gf:我想要一个 Objective-C 函数和方法名称的列表。我相信它们应该存储在一个文本文件中。无需调用,只需获取姓名列表。
  • @KennyTM:在运行时或不在运行时我都可以。

标签: objective-c function selector


【解决方案1】:

class-dump

【讨论】:

    【解决方案2】:

    您有时可以看到应用程序中的方法名称列表。找到应用程序的 .ipa 文件(可能在 Mac 上的 Music->iTunes->Mobile Applications 目录中)。复制其中一个 ipa 文件并将其从 .ipa 更改为 .zip。解压缩文件,在 Payload 文件夹中,有一个与应用程序同名的文件。右键单击它并“显示包内容”。在那里,您会找到另一个与应用程序同名的文件(没有扩展名)。这是应用程序的可执行文件。如果您在 BBEdit 之类的文本编辑器中打开它,您有时会看到一些方法名称,以及构建应用程序的框架列表。您也可以找到保存东西的路径名,通常是开发者的名字。

    例如,查看日语词典 Daijirin,我可以看到这些方法:
    -[HMWebSupport openMONOKAKIDOSupportWithSafariForView:style:]
    -[HistoryViewController viewWillAppear:]

    我还看到其中一位开发者叫 Norihito,他正在使用 SVN:/Users/norihito/Developer/SVN/Mobile/DAIJIRIN/Other

    其他应用程序(如 Weightbot)不会显示那么多信息。我不知道它有时会出现而其他时候不会出现的原因。

    【讨论】:

    • 只需在文件上运行strings
    • strings 似乎没有找到我在 BBEdit 中找到的东西。不过我以前从未使用过它,所以我可能错过了一个选项。
    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多