好的,我得到了它的编码(原来你不需要在构建日志中看到代码符号和embedded.mobileprovision了!)但是我想摆脱我的“可能没有响应”的警告。在查看有关这些警告的所有其他帖子后,我找不到问题......
在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”(以及肖像......同样的警告)。我已经尝试了所有常见的嫌疑 - 方法的拼写错误,使用类而不是实例,不导入标题或忘记将方法声明放在标题中。
事实是,代码似乎工作得很好......
任何人都可以看到我做错了什么(我可以摆脱警告)吗?
答案 0 :(得分:0)
警告说“UIView可能没有响应......”因为你已经将welcome_backView ivar声明为UIVIew而不是你的子类。
UIView没有方法setSubviewsToXXX - 它的子类。
改变这个:
UIView *welcome_backView;
到此:
Welcome_backView *welcome_backView;
即使在声明为UIView时也能正常工作,因为在运行时,ivar确实指向了一个响应setSubviewsToXXX方法的Welcome_backView实例。
另一个不会导致问题的事情是方法的名称。以“set”开头的方法名称通常用于属性设置器方法,可能会导致混淆。