2010-02-12 5 views

Répondre

2

Vous avez probablement déjà réalisé, mais ceci:

UIViewController tmp*=_currentViewController; 

est interprété comme:

UIViewController tmp *= _currentViewController; 

qui est une mission par une opération de multiplication avec une LHS qui est une déclaration d'un objet (non -pointer) nommé "tmp". Un pointeur d'objet nommé "_currentViewController" est l'autre opérande.

Ainsi, cela donne déclaration plus simple la même erreur:

int a *= b; 

Normalement, vous avez quelque chose comme:

a *= b; 

qui se développe pour être:

a = a * b; 

Cependant, le LHS dans ce cas, ce n'est pas simplement "a", mais la déclaration "int a".

Je pense que à cause de cette étrange valeur de LHS, le compilateur interprète l'expansion de ce à quelque chose comme:

int a { return a * b; } 

qui est clairement un nested function.

Questions connexes