-1

私は手紙のサンプルコードに従ったと思いますが、以下は私にエラーを与えています。

UIButtonをサブクラス化し、いくつかのプロパティを追加したいのですが、最初から失敗しています。

サブクラスファイルを作成しました。これらは私の.h/.mです:

// damButton.h
#import <UIKit/UIKit.h>

@interface damButton : UIButton
{
    CGFloat _position;
}
@property (nonatomic) CGFloat position;
@end

// damButton.m
#import "damButton.h"

@implementation damButton

@synthesize position = _position;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}
@end

メインビューコントローラーでカスタムボタンをインポートしましたが、プロパティの組み込みのゲッターとセッターを使用すると、エラーが発生します。

//MainViewController.m
#import "damButton.h"

// then within a method...
damButton *b = [damButton buttonWithType:UIButtonTypeRoundedRect];
[b position:5.0];

このエラーを生成します:No visible @interface for 'damButton' declares the selector 'position:'

ここで何が欠けているのかわかりません。ほとんど逐語的にコピーしました(私は思います)。組み込みのゲッター/セッターのみを使用したい(今のところ)。

私は何が欠けていますか?

4

1 に答える 1

5

setterメソッド-setPositionの代わりにgetterメソッドを呼び出しています。つまり、次のことを試してください。

[b setPosition:5.0];

また

b.position = 5.0;

UIButtonをサブクラス化することで何を達成しようとしているのか聞いてもいいですか?

于 2012-12-01T12:14:58.243 に答える