Я обычно смешиваю два. Если переменная назначается только один раз, то я использую method_002. Это сохраняет объявление там, где используется переменная. Однако, если переменная назначается несколько раз, я использую method_001, потому что тогда мне не нужно искать код, чтобы найти определение.
Пример последнего случая:
Использование method_002:
-(void) someMethod{
//...some code
SomeClass *myVar=[assign someValue];
//...some more code
if (someTest) {
myVar=someValue;
}else{
myVar=someOtherValue;
}
}
Если вы вернетесь к коду и посмотрите на myVar=someOtherValue;
, вам придется пробираться назад по коду, чтобы найти определение. И наоборот, если вы используете method_001, вы получите:
-(void) someMethod{
SomeClass *myVar;
//...some code
myVar=[assign someValue];
//...some more code
if (someTest) {
myVar=someValue;
}else{
myVar=someOtherValue;
}
}
И вы просто прыгаете наверх, чтобы увидеть определение.
Если вы используете этот стиль последовательно, вы будете автоматически знать, что любые переменные, определенные в начале функции / метода, будут иметь несколько назначений, а любые, определенные в теле, - нет.
Это действительно помогает пониманию, особенно если вы тратите много времени на то, чтобы вернуться к старому коду, который вы полностью забыли.