声明并实现一个本身执行一行代码的方法

时间:2012-02-16 05:57:36

标签: objective-c

我曾经多次看到程序员需要分配一些值(对象或基本类型,无所谓)的情况。让我们说这个值是一个NSString,可以从下面的表达式中获得

[myObject description]// returns NSString

但由于某些原因,我看到很多人声明了另一个本身返回NSString并仅执行上述命令的方法。像:

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

这只是一个偏好问题,还是有一些好处呢?

2 个答案:

答案 0 :(得分:2)

  

这只是一个偏好问题,还是有一些好处呢?

这一行包装通常用于:

  • 介绍一个意图被覆盖的方法的行为
  • 或(更频繁地)简化程序。如果该方法不存在,您可能会发现程序的复杂性增加。它用于证明意图,清晰度,文档,并最大限度地减少冗余实现(简化程序)。

答案 1 :(得分:1)

创建方法肯定有一些“好处”,甚至更好,覆盖“标准”NSObject描述方法..

例如,如果您有自定义NSObject并覆盖+(NSString *)description方法,则可以直接在该对象内返回信息。

例如,在我们称为foo的NSObject中覆盖了以下内容。

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

现在,如果您曾调用[foo description],它将返回字符串“Hello there”。 但是,如果您只是在不覆盖描述方法的情况下返回描述,则会返回<foo>0x12234之类的内容。

所以是的,覆盖自定义NSObject描述绝对有很多好处。