0

UIView からクラス SignalView を派生させましたが、タイプ SignalView のオブジェクトにメッセージを送信すると、メッセージが UIView に送信され、エラーが発生します。

-[UIView Initialise]: unrecognized selector sent to instance 0x1b3900

私のオブジェクトは、デバッグ ウォッチ ウィンドウにも UIView オブジェクトとして表示されます。

m_signalview    UIView *    0x001b3900

関連するコードは次のとおりです。

// signalview.h

#import <UIKit/UIKit.h>

@interface SignalView : UIView
{   

}

-(void)Initialise;

@end


//signalview.m

#import "SignalView.h"

@interface SignalView ()

@end

@implementation SignalView

-(void)Initialise
{

}



// viewcontroller.h
#import <UIKit/UIKit.h>
#import "SignalView.h"

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet SignalView *m_signalview;

@end


// viewcontroller.m
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize m_signalview;

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"%@", m_signalview);
    [m_signalview Initialise];
}
4

3 に答える 3

4

H2C03 そうですね。おそらくSignalViewではありません。インターフェイスビルダーのインスペクターで、ビューのnibファイルのアウトレットをチェックして、UIViewがまだ表示されていないことを確認します。それを SignalView に変更する場合:

前

次のようになります。

後

于 2013-03-01T16:22:41.660 に答える
2

次に、それは単なる のインスタンスでUIViewあり、 ではありませんSignalViewUIViewインスタンスが必要なときに、割り当てと初期化を行っていSignalViewます。コードに次のようなものがある場合:

m_signalView = [[UIView alloc] init];

に変更します

m_signalView = [[SignalView alloc] init];
于 2013-03-01T16:19:17.590 に答える
1

m_signalviewだと思いますIBOutlet
それをInterface Builderで追加したに接続していUIViewますか?
その場合、ローダーが適切なクラスのオブジェクトを作成できるように、そのプロパティに適切なクラスを設定する必要がある場合があります。

于 2013-03-01T16:22:09.763 に答える