【问题标题】:Can't find AppDelegate.m in xcode在 xcode 中找不到 AppDelegate.m
【发布时间】:2017-10-17 10:18:20
【问题描述】:

我目前正在尝试在我的 Unity 应用中实现 Facebook SDK,但我找不到必须修改才能实现 SDK 的 AppDelegate.m

我尝试在我的 Xcode 文件夹中到处搜索,但似乎无处可寻。

我也在谷歌上搜索,但由于我对 Xcode 真的一无所知(除了构建我的 Unity 项目),我也不明白答案......

谢谢,祝你有美好的一天!

【问题讨论】:

    标签: xcode facebook unity3d


    【解决方案1】:

    文件名“AppDelegate.m”是对“包含应用程序委托类定义的文件”的通用引用。但是,您的应用不需要将文件命名为“AppDelegate.m”,因此您需要找到自己的。

    在您的应用程序中的某处有一个实现UIApplicationDelegate 协议的类。您应该使用 Xcode 的搜索功能搜索“UIApplicationDelegate”。这应该使您走上寻找课程的正确轨道。当其他文档说 AppDelegate.m 时,无论该类所在的文件是您需要参考的文件

    更新:

    我忘记了在 Objective-c 中你没有声明采用协议。这是查找应用委托的另一种方法。

    找到你的 main.m 文件(这个文件是必需的,所以你肯定会有一个)。它将包含如下代码:

    int main(int argc, char * argv[]) {
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([YourAppDelegateClassName class]));
        }
    }
    

    有趣的部分是[YourAppDelegateClassName class],因为它代表您的应用程序委托的类。搜索方括号中的第一个单词,在本例中为YourAppDelegateClassName

    【讨论】:

    • 找到一个名为 Unity_iPhone_Tests.m 的文件,里面有“UIApplicationDelegate”,这是我的“AppDelegate.m”吗?
    • 谢谢!我将在工作中访问 mac 后立即尝试此操作
    • 在这个文件中,我有“UIApplicationMain(argc, argv, nil, NSString stringWithUTF8String: AppControllerClassName]);
    • @LeVentilo 是的,main.mm 是正确的。 mm 扩展名表示something specific。所以看起来你的应用程序的应用程序委托的类名存储在一个字符串中。您需要找到AppControllerClassName 的定义位置。当您找到它时,该字符串应该是您要查找的类的名称。 These docs 也可能对您有所帮助。
    • 谢谢!似乎 SDK 在我成功编译并运行代码时已集成 :) 现在等待看看它是否有效!感谢您的解释,即使对于像我这样的 xcode noobie,他们也很清楚
    【解决方案2】:

    你可以通过xcode搜索UIApplicationDelegate找到它,然后你会在一个名为something.h的文件中找到这个协议的实现。你需要。

    【讨论】:

      猜你喜欢
      • 2017-03-15
      • 2015-05-14
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多