1

私はObjectiveCにまったく慣れていないので、これを行う方法を見つけることができないようです(可能であれば)。

私はNSArray4枚のカード(カード=自分のクラス)でいっぱいになっていて、ラベルのテキストをNSStringカードオブジェクトが保持するに設定したいと思います。

Javaでは、次のようにします。4枚のカードを含むカード配列があり、theLabelが文字列の場合。

theLabel = deck[2].getLabel();

これはObjectiveCでは機能しないようです。これまでのObjectiveCのコードは次のとおりです。

- (IBAction)nextCard:(id)sender {
    theLabel.text = [deck objectAtIndex:j].getLabel;
    theImage.image = [deck objectAtIndex:j].getImage;
}

nextCardは、iPhoneのボタンをクリックするたびに電話をかけます。jは、表示するカードを追跡する通常のintです。

配列を作成しているときは、次のようになります。

- (void)viewDidLoad
{
    [super viewDidLoad];

    ah = [[Card alloc]init];
    [ah setLabel:@"label1"];
    [ah setCardImage: [UIImage imageNamed:@"3.png" ]];

    as = [[Card alloc]init];
    [as setLabel:@"label2"];
    [as setCardImage: [UIImage imageNamed:@"2.png" ]];

    ac = [[Card alloc]init];
    [ac setLabel:@"labbel3"];
    [ac setCardImage: [UIImage imageNamed:@"1.png" ]];

    ad = [[Card alloc]init];
    [ad setLabel:@"label4"];
    [ad setCardImage: [UIImage imageNamed:@"4.png" ]];

    deck = [NSMutableArray arrayWithCapacity:25];
    [deck addObject:ah];
    [deck addObject:as];
    [deck addObject:ac];
    [deck addObject:ad];
}

したがって、基本的には、NSArrayに格納されているオブジェクトのメソッドを使用できるようにしたいと思います。

よろしくお願いします。よろしくお願いします。

4

3 に答える 3

1

Objective-Cでは、生成されたゲッターにはgetプレフィックスがないため、次のように使用します。

theLabel = deck[2].label;

または:

theLabel= [deck[2] label];
于 2013-01-11T14:48:35.343 に答える
0

これをチェックして:

[deck objectAtIndex:0].label;

また:

[[deck objectAtIndex:0] label];

また:

[[deck objectAtIndex:0] yourMethodWithParameter:@"foo"];
于 2013-01-11T14:46:12.300 に答える
0

Objective-Cでは、ほとんどの場合、アクセサメソッドは自動生成されます。「object」という名前のプロパティがあるとします。getterメソッドはこのように名前が付けられていませんgetObject。ここで、「object」はアクセスするプロパティです。このようなプロパティの名前だけで名前が付けられていますobject

したがって、あなたの場合は次のようになります。

NSString *theLabelString = [[deck objectAtIndex:j] label];
//or this:
NSString *theLabelString = [deck[j] label];
//or this:
NSString *theLabelString = deck[j].label;
于 2013-01-11T14:51:34.527 に答える