[childController release], childController = nil;
это обычный оператор C, запятая , предназначенный для "секвенирования" выражений.на самом деле, в этом случае это полностью эквивалентно:
[childController release];
childController = nil;
единственное, что изменяется, это читаемость (в худшую или лучшую сторону, это зависит ...)
, но в целомОператор секвенирования вычисляет значение последнего оператора (т. е. значения всех операндов отбрасываются, кроме последнего).
int a, b;
int c = (a = 1), (b = 2);
c будет равно 2 после выполнения этого оператора.
РЕДАКТИРОВАТЬ: по ссылке, которую я добавил:
Вряд ли есть причина использовать оператор запятой где-либо, кроме первого и третьего управляющих выражений цикла for, и фактическибольшинство запятых, которые вы видите в программах на C, не являются операторами запятых.В частности, запятые между аргументами в вызове функции не являются операторами запятых;это просто знаки препинания, которые разделяют несколько выражений аргументов.Довольно легко понять, что они не могут быть запятыми, в противном случае при вызове, подобном
edit: лучший пример:
int a = 1;
int b = 2;
b = printf("%d, %d", a,b), a+b;
, сначала будет напечатано:
1, 2
, затем назначьте 3 для b.