【发布时间】:2017-10-17 10:18:20
【问题描述】:
我目前正在尝试在我的 Unity 应用中实现 Facebook SDK,但我找不到必须修改才能实现 SDK 的 AppDelegate.m。
我尝试在我的 Xcode 文件夹中到处搜索,但似乎无处可寻。
我也在谷歌上搜索,但由于我对 Xcode 真的一无所知(除了构建我的 Unity 项目),我也不明白答案......
谢谢,祝你有美好的一天!
【问题讨论】:
我目前正在尝试在我的 Unity 应用中实现 Facebook SDK,但我找不到必须修改才能实现 SDK 的 AppDelegate.m。
我尝试在我的 Xcode 文件夹中到处搜索,但似乎无处可寻。
我也在谷歌上搜索,但由于我对 Xcode 真的一无所知(除了构建我的 Unity 项目),我也不明白答案......
谢谢,祝你有美好的一天!
【问题讨论】:
文件名“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。
【讨论】:
main.mm 是正确的。 mm 扩展名表示something specific。所以看起来你的应用程序的应用程序委托的类名存储在一个字符串中。您需要找到AppControllerClassName 的定义位置。当您找到它时,该字符串应该是您要查找的类的名称。 These docs 也可能对您有所帮助。
你可以通过xcode搜索UIApplicationDelegate找到它,然后你会在一个名为something.h的文件中找到这个协议的实现。你需要。
【讨论】: