0

サブクラスを作成しUIView、 でメソッドを実行したいのですinitWithFrame:が、このメソッドが呼び出されていません。

実行中のからメソッドを呼び出すとinitWithCoder:、コードがクラッシュして次のエラーが表示されます。

キャッチされない例外 'NSGenericException' が原因でアプリを終了しています。理由: 'このコーダーでは、初期化コーダー メソッドから置き換えられたオブジェクトを返す必要があります:

私のコードは次のとおりです。

-(void)initialize
{
    //code
}

-(id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self initialize];

        // Initialization code
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)aCoder
{ 
    self = [super initWithCoder:aCoder];

    if(self)
    {
        [self initialize];
    }
    return self;
}
4

3 に答える 3

6

メソッドselfから戻っていません。initWithCoder:

于 2013-04-09T08:25:32.207 に答える
5

おそらく、この UIView を IB または storyBoard 内で指定して、initWithCoder を呼び出します。initWithCoder を削除し、awakeFromNib を使用します

    - (void)awakeFromNib{
    //custom init code
   [self initialize];
    }
于 2013-04-09T08:33:45.300 に答える
0

これを試してみてください。

- (id)initWithCoder:(NSCoder *)aCoder
    { 
        self = [super initWithCoder:aCoder];

        if(self)
        {

        }
    return self;
    }
于 2013-04-09T08:33:53.207 に答える