Параметр нескольких значений - PullRequest
1 голос
/ 02 июня 2011

Может ли кто-нибудь объяснить мне, как передать несколько значений в параметр или переменную в target-c, как показано ниже, и как обрабатывать это внутри метода:

view.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin 
                      | UIViewAutoresizingFlexibleTopMargin;

1 Ответ

2 голосов
/ 02 июня 2011

То, что вы видите, представляет собой простое разделение между целыми числами, параметры маски автоматического изменения размера UIView являются просто значениями перечисления typedef. Вы можете создать их самостоятельно:

typedef enum {
    IceCreamChocolateSyrup = 1 << 1,
    IceCreamCaramelSyrup = 1 << 2,
    IceCreamMapleSyrup = 1 << 3,
    // etc. up to 31 flavors
} IceCreamSyrups;

Затем вы определяете метод, который принимает их в качестве параметра:

- (void)addIceCreamSyrups:(IceCreamSyrups)syrups {
    if (syrups & IceCreamChocolateSyrup)
        [self addChocolateSyrup];

    if (syrups & IceCreamCaramelSyrup)
        [self addCaramelSyrup];

    if (syrups & IceCreamMapleSyrup)
        [self addMapleSyrup];
}

И вызвать этот метод следующим образом:

[self addIceCreamSyrups:(IceCreamChocolateSyrup | IceCreamMapleSyrup)];
...