检查对象是否创建:好风格?

时间:2014-01-27 12:18:26

标签: objective-c

我最近做了以下一些功能:

-(BOOL)registerSomethingWithParameter:(Parameter*) param
{
    Something* some = nil;

    if ([self checkParameter:param])
    {
        some = [[Something alloc] myInitCallWithParameter:param];
    }
    return (some ? YES : NO);
}

关于在代码中使用?的讨论很多。你怎么看?这是告诉调用函数的正确方法,一切都运行良好而不返回对象吗?

我还想过:在myInitCallWithParameter: - 定义中检查Something中的有效参数是不是更好,但大多数这些类非常小并且只存储几个值。因此,在输入if。

时,会检查可能导致创建为零的所有内容

3 个答案:

答案 0 :(得分:2)

我认为使用时没有任何问题?而不是if / else。我看到很多程序员使用它而我自己使用它。你的代码风格很好。

答案 1 :(得分:0)

为什么不这样做:

-(BOOL)registerSomethingWithParameter:(Parameter*) param
{
    return [self checkParameter:param];
}

我假设checkParamter返回一个bool。在这种情况下,你甚至不需要这个registerSomethingWithParameter函数,因为它只是创建了一个在任何地方都没有使用的局部变量?除非你刚才写这个作为例子。 : - )

答案 2 :(得分:0)

虽然您的方法完全可行,但更好的选择可能是简单地返回创建的对象本身;像这样:

-(id)registerSomethingWithParameter:(Parameter*) param
{
  Something* some = nil;

  if ([self checkParameter:param]) {
    some = [[Something alloc] myInitCallWithParameter:param];
    [self registerSomething:some];
  }

  return some;
}