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.