-1

さまざまな種類の物を受け取ることができる行動をとることができれば、私は苦しんでいました。たとえば、UILabelsとUIButtonsを同じアクションに渡したいが、一度に1つだけ渡す場合です。私が探していないのは次のようなものです:

- (void)actionInitWithButton:(UIButton *)button Label:(UILabel *)label;

このようなもっと何か:

- (void)actionInitWithObject:(UniversalObject *)object;

前もって感謝します :)

4

1 に答える 1

1

Objective-Cでは、それらは単にと呼ばれidます。それは言語の主要な概念です。

代替手段はですNSObjectが、これは通常、サブクラス化に使用されます。idすべての(ただしほとんどの)オブジェクトがから継承するわけではないため、より広い範囲をカバーしますNSObject

元。

- (void)actionInitWithObject:(id)something
{
    if([something isKindOfClass:[UIButton class])
    {
        UIButton *button = (UIButton *)something;
        ...
    } else if ([something isKindOfClass:[UILabel class]) {
        UILabel *label = (UILabel *)something;
        ...
    }
 }
于 2012-12-13T03:48:49.613 に答える