0

コードにこのエラーがあります。カスタムをデザインしていますcheckbox。そのために、 のUIViewようにカスタマイズした がありCheckboxます。コードを使用したプロジェクトの別のコピーがあり、完全に正常に動作します。コードを別の Mac にコピーしましたが、動作しません。同じコードです。

 My.m file
- (void)defaultInit
{
btn_CheckBox = [UIButton buttonWithType:UIButtonTypeCustom];
btn_CheckBox.frame = CGRectMake(0, 0, kImageWidth, kImageHeight);
btn_CheckBox.adjustsImageWhenHighlighted = NO;
[btn_CheckBox setImage:[UIImage imageNamed:@"CheckBox_Deselected.png"] forState:UIControlStateNormal];
[btn_CheckBox setImage:[UIImage imageNamed:@"CheckBox_Selected.png"] forState:UIControlStateSelected];
[btn_CheckBox addTarget:self action:@selector(handleTap) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn_CheckBox];

lbl_CheckBox = [[UILabel alloc] initWithFrame:CGRectMake(35, 0, self.bounds.size.width-35, 30)];
lbl_CheckBox.backgroundColor = [UIColor clearColor];
lbl_CheckBox.font = [UIFont systemFontOfSize:[UIFont smallSystemFontSize]];
[self addSubview:lbl_CheckBox];
 }
 - (void)setID:(NSUInteger)index andSelected:(BOOL)state andTitle:(NSString *)title
{
    nID = index;
    [btn_CheckBox setSelected:state];
    lbl_CheckBox.text = title;
}

- (void)handleTap
{
btn_CheckBox.selected = !btn_CheckBox.selected;


[delegate stateChangedForID:nID withCurrentState:btn_CheckBox.selected];
}
- (BOOL)currentState
{
    return btn_CheckBox.selected;
}

method.btn_CheckBox = [UIButton buttonWithType:UIButtonTypeCustom];ブレークポイントがこの行に到達するとすぐに、このエラーがスローされます

Terminating app due to uncaught exception 'NSInvalidArgumentException' reason :'+[UIButton buttonWithType:]:unrecognized selector sent to class 0x3a88'. 

私の .h ファイル

@protocol CheckBoxDelegate <NSObject>
- (void)stateChangedForID:(NSUInteger)index withCurrentState:(BOOL)currentState;
@end
@interface Checkbox : UIView
{
NSUInteger  nID;
UIButton    *btn_CheckBox;
UILabel     *lbl_CheckBox;

id <CheckBoxDelegate> delegate;
}
 @property (strong, nonatomic) UIButton *btn_CheckBox;

このエラーが発生するのはなぜですか?お役に立てれば幸いです。さらに詳しい情報が必要な場合は、お問い合わせください。ありがとう...

4

3 に答える 3

0

#import <UIKit/UIKit.h>.h ファイルの先頭に必要です。

于 2012-11-15T04:27:06.787 に答える
0

あなたのエラーをもう一度見てもらえますか、なぜそれは言うのですか

キャッチされない例外 'NSInvalidArgumentException' 理由:'+[UIBUtton buttonWithType:]: 認識されないセレクターがクラス 0x3a88 に送信されたため、アプリを終了します。これ??

reason :'+[* UIBU *tton buttonWithType:]

UIBU と表示されているので、UIButton にスペルミスがあると思います。

それが役に立てば幸い。

于 2012-11-15T05:29:44.697 に答える
0

行で:

[btn_CheckBox addTarget:self action:@selector(handleTap) forControlEvents:UIControlEventTouchUpInside];

メソッドのhandleTap状態は- (void)handleTap { }または- (void)handleTap:(id)senderですか? 後者の場合、行は次のように更新されます。

[btn_CheckBox addTarget:self action:@selector(handleTap:) forControlEvents:UIControlEventTouchUpInside];
于 2012-11-15T06:11:21.400 に答える