【问题标题】:Warning arise after conform `UIScrollViewDelegate`遵循`UIScrollViewDelegate`后出现警告
【发布时间】:2014-04-18 05:59:18
【问题描述】:
我正面临下面一行的警告
更改以下行后出现此警告
@interface BDSAppDelegate : UIResponder <UIApplicationDelegate>
到
@interface BDSAppDelegate : UIResponder <UIApplicationDelegate, UIScrollViewDelegate>
在这里,我只是符合UIScrollViewDelegate 并出现此警告。每件事都很完美,但我不明白如何删除这个警告。任何人都可以解释为什么会这样以及如何删除它。提前致谢。
【问题讨论】:
标签:
ios
objective-c
uiscrollviewdelegate
【解决方案1】:
[[UIApplication sharedApplication] delegate] 返回一个 id<UIApplicationDelegate> 必须强制转换为 BDSAppDelegate 以防止警告。
换句话说,所有BDSAppDelegate 都是id<UIApplicationDelegate>,但这并不意味着所有id<UIApplicationDelegate> 都是BDSAppDelegate。
【解决方案2】:
不要将<UIScrollViewDelegate> 添加到公共接口,您应该添加
将其添加到实现文件中的类扩展:
BDSAppDelegate.h(公共接口):
...
@interface BDSAppDelegate : UIResponder <UIApplicationDelegate>
...
BDSAppDelegate.m(实现):
#import "BDSAppDelegate.h"
@interface BDSAppDelegate () <UIScrollViewDelegate>
@end
@implementation BDSAppDelegate
...
@end
这使得声明本地到实现,并且
BSDAppDelegate *mainDelegate = [[UIApplication sharedApplication] delegate];
在没有演员表的情况下工作(并且没有警告)。