我有不同的“可能不响应”警告问题?
题
好的,我把它送到了CodeSign(事实证明,您不需要看到代码符号并嵌入。在查看有关这些警告的所有其他帖子后,我找不到问题...
在Welcome_backview.h中:
@interface Welcome_backView : UIView {
Welcome_backViewController *refParentViewController;
}
- (id)initWithParentViewController:(Welcome_backViewController *)parent;
- (void)setSubviewsToLandscape;
- (void)setSubviewsToPortrait;
在Welcome_back.m中,
#import "Welcome_backView.h"
#import "Welcome_backViewController.h"
@interface Welcome_backView()
//
@end
@implementation Welcome_backView
- (void)setSubviewsToPortrait{
//do great things
}
- (void)setSubviewsToLandscape{
//do more great things
}
然后,这是从welcome_backviewcontroller.m:
#import "Welcome_backViewController.h"
#import "Welcome_backView.h"
@interface Welcome_backViewController()
-(void) arrangeViews;
@end
@implementation Welcome_backViewController
UIView *welcome_backView;
- (id)init {
welcome_backView = [[Welcome_backView alloc] initWithParentViewController:self];
self.view = welcome_backView;
}
-(void) arrangeViews {
//if one thing
[welcome_backView setSubviewsToPortrait];
//if another thing
[welcome_backView setSubviewsToLandscape];
}
而且,像许多海报一样,我收到警告“ Uiview”可能不会回应“ -setsubviewstolandscape”(并肖像...相同的警告)。我尝试了所有通常的嫌疑人 - 方法的拼写错误,使用类而不是实例,而不是导入标题或忘记将方法声明放入标题中。
事实是,该代码似乎正常...
谁能看到我做错了什么(我可以摆脱警告)吗?
解决方案
警告说“ Uiview可能无法做出响应...”,因为您已将Welcome_backview Ivar宣布为Uiview而不是您的子类。
Uiview没有Methods setsubViewStoxxx-您的子类。
更改此:
UIView *welcome_backView;
为此:
Welcome_backView *welcome_backView;
即使在称为UIVIEW的情况下,它也起作用,因为在运行时,IVAR确实指向Wincul_backView的实例,该实例对SetSubViewStoxxx方法响应。
尚未引起问题的另一件事是方法的名称。以“设置”开头的方法名称通常用于属性设置器方法,以后可能引起混乱。
不隶属于 StackOverflow