Pergunta

Então, eu tenho uma classe (ikimageView) com várias propriedades.

Eu sei que a exibição setprop: bool retorna vazio. No entanto:

BOOL b = view.prop = NO;

parece funcionar. Se eu tinha uma função f () que retorna um booleano, alguém sabe se isso está realmente fazendo:

[view setProp:f()];
Bool b = [view getProp];

ou

[view setProp: f()];
Bool b = f();

ou

BOOL TMP = f();
[view setProp: TMP];
BOOL b = TMP;

Eu pergunto porque quando eu fizer:

BOOL b = view.hasHorizontalScroller = YES;
NSLog(@"b is %d scroll is %d", b, [view getHasHorizontalScroller]);

Eu recebo "B é 1, rolagem é 0" (o que significa que o SethashorizontalsCroller está falhando por algum motivo, mas B está definido corretamente)

mas:

BOOL b;
[view setHasHorizontalScroller: YES];
b = [view getHasHorizontalScroller];
NSLog(@"b is %d scroll is %d", b, [view getHasHorizontalScroller]);

Eu recebo "b é 0 rolagem é 0"

Isso é muito confuso para mim. (Além disso, se alguém puder me dizer como a configuração da propriedade para sim falha, mas então ele consegue definir B ... e ainda não surgem erros ...

Foi útil?

Solução

Está fazendo

BOOL TMP = f();
[view setProp: TMP];
BOOL b = TMP;

Houve uma discussão sobre isso antes das propriedades enviadas. Algumas pessoas pensaram que esse deveria ser um erro de compilação para evitar a ambiguidade.

Provavelmente é melhor evitar completamente a construção.

Outras dicas

Parece não um bug. Código seguinte:

a.text = b.text = c.text;

Produz esses métodos chamados:

// [c text]
// [b setText:]
// [a setText:]

Como você pode ver [b text] não é chamado nesta cadeia :(

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top