我正在尝试将Pushwoosh引入其游戏中,该指南非常简单,但是我在这里遇到了这个问题:
答案 0 :(得分:3)
您的AppDelegate实现应如下所示:
@implementation AppDelegate <PushNotificationDelegate>
第20行。
这意味着您的AppDelegate符合PushNotificationDelegate
协议。
答案 1 :(得分:0)
对于我来说,我需要遵循头文件中的协议以使警告静音。我不知道我在做什么。
#import <UIKit/UIKit.h>
#import "BaseAppDelegate.h"
#import <Pushwoosh/PushNotificationManager.h>
@interface ChildAppDelegate : BaseAppDelegate <UIApplicationDelegate, PushNotificationDelegate>
@end
答案 2 :(得分:0)
阅读协议。基本上,协议是对象必须(或在@optional
属性的情况下可能具有)必须具有的方法和/或属性的列表。您在该错误消息中将NSObject<PushNotificationDelegate>
读为“任何声明其实现了PushNotificationDelegate
协议中的方法的NSObject子类”。
要声明您的类符合某个协议,请在<
或{{ 1}}行。
编译器分别读取每个源文件,以及您从该源文件>
读取的所有标头(如果您想了解更多,请在“编译单元”上阅读)。因此,如果您在@interface
文件中写入@implementation
位,则只有#import
文件中的代码知道这一点,因为其他<PushNotificationDelegate>
文件只看到您在标头中写的内容
在您的情况下,.m
源文件应该看到了,但是也许您有另一个源文件,在其中您设置了相同类型的委托,只包含{{ 1}},因此看不到它?
无论如何,如果您以这种知识阅读此错误消息,您会看到.m
被声明为.m
,这就是您的AppDelegate.m
必须能够做到的将其分配给该属性。错误正确地表明AppDelegate
可能是PushNotificationManager.delegate
,而不是NSObject<PushNotificationDelegate>
。
声明您的类符合协议的优点是,如果您忘记实现必需的方法,则编译器将打印一条错误消息。