別の「応答しないかもしれない」警告問題はありますか?
質問
わかりました、私はそれをCodeSignに手に入れました(ビルドログにもうコードサインと埋め込まれた.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」(および肖像画...同じ警告)に応答しないかもしれない警告を受け取ります。私はすべての通常の容疑者を試しました - メソッドのスペルミス、インスタンスの代わりにクラスを使用して、ヘッダーをインポートせず、メソッド宣言をヘッダーに入れるのを忘れていませんでした。
真実は、コードが正常に機能しているようです...
誰もが私が間違ったことを見ることができますか(警告を取り除くことができますか)?
解決
警告は、「uiviewは応答しないかもしれない...」と言っています。なぜなら、あなたはそれのサブクラスの代わりにuiviewとしてwelcome_backview ivarを宣言したからです。
uiviewには、setsubviewstoxxxのメソッドがありません。
これを変える:
UIView *welcome_backView;
これに:
Welcome_backView *welcome_backView;
Uiviewとして宣言された場合でも機能します。実行時に、IVARはSetSubViewStoxXXメソッドに応答するWelcome_BackViewのインスタンスを指しているためです。
問題を引き起こしていないもう1つのことは(まだ)方法の名前です。 「セット」から始まるメソッド名は、一般にプロパティセッターメソッドに使用され、後で混乱を引き起こす可能性があります。