Могу ли я поставить {} -брекеты в любом месте Objective-C? - PullRequest
0 голосов
/ 15 сентября 2011

При кодировании Objective-C разрешается ли делать что-либо.как:

{
  UIView *viewOne = [[UIView alloc] init];
  // do stuff with view
  [self addSubview:viewOne];
  [viewOne release];
} //View 1

{
  UIView *viewTwo = [[UIView alloc] init];
  // do stuff with view
  [self addSubview:viewTwo];
  [viewTwo release];
} //View 2

Когда я однажды сделал что-то подобное, XCode не жалуется и работает на iOS 4.3.3.Мой вопрос: если это делает мой код несовместимым с iOS 3.1.3 или чем-то еще, потому что мне кажется, что это могут быть блоки, которые я использую.Я хотел бы использовать это в основном для удобочитаемости кода и свертывания.

Ответы [ 4 ]

1 голос
/ 15 сентября 2011

Все, что вы делаете там, это создание отдельных областей. Все, что объявлено внутри первой области, не будет доступно для второй области.

Это вполне допустимый C (а поскольку Objective-C - это просто строгий надмножество C, его тоже хорошо).

Я видел, как это было сделано во многих проектах, над которыми я работал. Тем не менее, я никогда не использовал его сам, так как это можно рассматривать как способ разделения частей метода, которые не имеют особого отношения и могут указывать на плохое качество кода - не то чтобы я говорил, что ваш код плохой !

Также это не блоки C, как в «замыканиях», блок C выглядит как

^{
    //code
}

в его основной форме.

1 голос
/ 15 сентября 2011

Это особенность C, которая существует уже очень давно. Он называется «составной оператор» или «блок-оператор», но он не имеет ничего общего с расширением «блоков», которое недавно представила Apple. Это просто способ группировки нескольких операторов и определения области видимости для переменных.

0 голосов
/ 15 сентября 2011

Да, это возможно. Но вместо этого создайте метод:

-(void)addView:(UIView*)view{
...
} 

Будет более читабельным и понятным. Также нет повторного использования кода.

0 голосов
/ 15 сентября 2011

Вполне нормально использовать фигурные скобки, как вы сделали для вашей читабельности.Компиляторы не будут жаловаться: P

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...