Вложенные вызовы методов против одноразовых переменных - PullRequest
3 голосов
/ 04 августа 2010

Какова наилучшая практика при вложении вызовов методов или использовании одноразовых переменных?

Если вы никогда не используете одноразовые переменные?

пример:

[persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType 
                                         configuration:nil 
                                                   URL:[NSURL fileURLWithPath: [applicationSupportDirectory stringByAppendingPathComponent: @"storedata"]] 
                                               options:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption] 
                                                 error:&error];

Стоит ли всегда разбивать вложенный метод на одноразовые переменные?

пример:

NSNumber *yesNumber = [NSNumber numberWithBool:YES];
NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:yesNumber 
                                                        forKey:NSMigratePersistentStoresAutomaticallyOption];
NSString *urlPath = [applicationSupportDirectory stringByAppendingPathComponent:@"storedata"];
NSURL *url = [NSURL fileURLWithPath: urlPath]; 
[persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType 
                                         configuration:nil 
                                                   URL:url
                                               options:optionsDict
                                                 error:&error];

Или вы должны использовать какую-то комбинацию из двух?

пример:

NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] 
                                                        forKey:NSMigratePersistentStoresAutomaticallyOption];
NSURL *url = [NSURL fileURLWithPath: [applicationSupportDirectory stringByAppendingPathComponent:@"storedata"]]; 
[persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType 
                                         configuration:nil 
                                                   URL:url
                                               options:optionsDict
                                                 error:&error];

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

Ответы [ 3 ]

1 голос
/ 04 августа 2010

Лично я считаю, что вы должны использовать переменные "one-shot", так как не идет с дополнительными издержками (в режиме "релиз", то есть с включенной оптимизацией), и это облегчает отладку.Если, конечно, у вас нет конкретной причины не делать этого.

1 голос
/ 04 августа 2010

Мой голос - за то, что легче всего читать.

Когда я привожу здесь примеры кода для SO, я использую переменные одноразового использования (OSV), потому что так проще кому-то объяснить это. Но я не использую их в своем собственном коде так много.

Если есть раздел моего кода, который нуждается в комментариях к коду, я считаю это хорошим кандидатом на рефакторинг в метод. То же самое с переменными. Если мне нужно подумать о том, что представляет собой параметр, у меня это может быть OSV, но для очевидных параметров, таких как nil или myView.subView, мне сложнее читать, если я создаю для них отдельные переменные.

Чтобы ответить на вопрос: я использую смесь, как и вы, но я стараюсь не слишком беспокоиться об этих вещах. Стили кодирования должны быть ориентирами, а не стержнями для наших задников - до тех пор, пока код будет читабелен и непротиворечив.

1 голос
/ 04 августа 2010

Если одноразовые переменные делают ваш код более читабельным, используйте их.Не часто это имеет значение, AFAIK.

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