代码之家  ›  专栏  ›  技术社区  ›  Fogmeister

可选参数

  •  1
  • Fogmeister  · 技术社区  · 15 年前

    我(在网站上获得作者许可的情况下)接受了一个包装类,用于将获取请求写入我的核心数据栈。

    写它的人说它有“可选参数”,我想知道这意味着什么。

    不管怎样,静态方法就是这样写的…

    +(NSMutableArray *) searchObjectsFromContext
        : (NSString*) entityName
        : (NSPredicate*) predicate
        : (NSString*) sortKey
        : (BOOL) sortAscending
        : (NSManagedObjectContext *) managedObjectContext
    

    我一直在运行它,把“零”传递给不需要的参数。这是正确的做法吗?

    此外,冒号之间没有额外的方法文本这一事实是否有意义?

    谢谢你的帮助

    奥利弗

    2 回复  |  直到 15 年前
        1
  •  3
  •   kubi    15 年前

    在没有阅读文档或检查源代码的情况下,不可能说传递“nil”是否正确。不过,这可能是正确的,因为这是大多数类中的标准行为。

    创建没有关联文本的方法参数(如您在发布的代码中看到的)是完全合法的…但它也非常丑陋,你失去了obj-c冗长的优点。完全没有理由写这样的代码,它只会使类更难使用。

        2
  •  0
  •   Matthew    15 年前

    可选参数以vb(和其他一些语言)提供,但不是c。c强制您重载函数。

    如果愿意,可以将“默认”值传递给可选参数。只要你知道这个函数会有什么反应,我看不出这会有什么伤害。

    编辑:我刚刚看了你的iPhone标签……对不起的!我不知道我的回答在这方面对你有多重要