Xcode“AppDelegate *const __strong'到不兼容类型的参数”错误

2024-02-07

当我宣布appDelegate界面如下依次设置NSXMLParserDelegate,我收到来自使用 [[UIApplication sharedApplication] delegate] 的其他视图的一些警告;

@interface AppDelegate : UIResponder <UIApplicationDelegate, NSXMLParserDelegate>

警告:使用以下表达式初始化“AppDelegate *__strong” 不兼容的类型“id”

但是,如果我删除它,由于 xmlParser 的自我设置,会出现另一个警告,

@interface AppDelegate : UIResponder <UIApplicationDelegate>

警告:将“AppDelegate *const __strong”发送到参数 不兼容的类型“id”

on

    xmlParser = [[NSXMLParser alloc] initWithData:receivedData];
    [xmlParser setDelegate:self];

如何将两者都删除?谢谢


您确实不应该让您的 AppDelegate 公开暴露接口。它在所有代码之间创建了非常紧密的耦合。如果其他代码(在您的 AppDelegate 之外)需要 NSXMLParserDelegate,您应该为其创建一个不同的类。

看起来您的 AppDelegate 需要成为其自身目的的委托。您可以通过在 AppDelegate.m 文件中创建类扩展来“私下”实现该接口。

@interface AppDelegate() <NSXMLParserDelegate>
@end

执行上述操作将删除您在此处收到的警告:

[xmlParser setDelegate:self];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xcode“AppDelegate *const __strong'到不兼容类型的参数”错误 的相关文章

随机推荐