Объявление и реализация метода, который сам выполняет одну строку кода - PullRequest
0 голосов
/ 16 февраля 2012

Я много раз видел случай, когда программисту нужно присвоить какое-то значение (тип Object или примитив, не имеет значения). И скажем, это значение является строкой NSSt и может быть получено из следующего выражения

[myObject description]// returns NSString

Но по какой-то причине я видел, как многие люди объявляли другой метод, который сам возвращает NSString и выполняет только вышеуказанную команду. Как:

-(NSString*)getDescription{
   return [myObject description];
}

Это просто вопрос предпочтений или есть какая-то польза от этого?

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

Это просто вопрос предпочтений или есть какая-то польза от этого?

Эти однострочные оболочки часто используются для:

  • вводит поведение метода, который должен быть переопределен
  • или (чаще) для упрощения программы. Если метод не существует, вы можете обнаружить, что сложность программы возрастает. Он служит для демонстрации намерений, для ясности, документирования и для минимизации избыточных реализаций (упрощение программы).
1 голос
/ 16 февраля 2012

Определенно есть некоторая «выгода» создания метода или даже лучше, переопределяя «стандартный» метод описания NSObject ..

Если у вас есть, например, пользовательский NSObject и переопределить метод +(NSString *)description, вы можете вернуть информацию непосредственно внутри этого объекта.

Возьмем, к примеру, следующее, что было переписано в NSObject, который мы назвали foo.

+ (NSString *)description {
     return @"Hello there";
}

Теперь, если вы когда-нибудь позвоните [foo description], он вернет строку "Hello there". Однако, если вы только что вернули описание, не переписывая метод description, он вернул бы что-то вроде <foo>0x12234 или что-то еще.

Так что да, это определенно имеет много преимуществ для переопределения пользовательского описания NSObject.

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