0

OK、コード署名しました (ビルド ログにコード署名と 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」に応答しない可能性があるという警告が表示されます(およびポートレートに...同じ警告)。メソッドのスペルミス、インスタンスの代わりにクラスを使用、ヘッダーをインポートしていない、またはメソッド宣言をヘッダーに入れるのを忘れていたなど、よくある疑いをすべて試しました。

真実は、コードはうまくいくようです...

私が間違ったことを誰でも見ることができますか (警告を取り除くことはできますか)?

4

1 に答える 1

0

警告は、「UIView が応答しない可能性があります...」と言っています。これは、welcome_backView ivar をそのサブクラスではなく UIVIew として宣言したためです。

UIView にはメソッド setSubviewsToXXX がありません。そのサブクラスにはあります。

これを変える:

UIView *welcome_backView;

これに:

Welcome_backView *welcome_backView;

実行時に ivar が setSubviewsToXXX メソッドに応答する Welcome_backView のインスタンスを指しているため、UIView として宣言されている場合でも機能します。

(まだ) 問題を引き起こしていないもう 1 つのことは、メソッドの名前です。「set」で始まるメソッド名は、通常、プロパティ セッター メソッドに使用され、後で混乱を招く可能性があります。

于 2010-11-09T16:56:05.780 に答える