可选参数

时间:2010-08-20 15:06:23

标签: iphone objective-c core-data wrapper

我已经(在网站上有作者许可)一个包装类,用于将获取请求写入我的核心数据堆栈。

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

Anywho,静态方法都是这样编写的......

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

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

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

感谢您的帮助

奥利弗

2 个答案:

答案 0 :(得分:3)

如果没有阅读文档或检查源代码,传递'nil'是正确的做法是不可能的。但这可能是正确的,因为这是大多数课程中的标准行为。

创建没有关联文本的方法参数(正如您在发布的代码中看到的那样)是完全合法的...但它也非常丑陋,您将失去Obj-C冗长的所有好处。绝对没有理由编写这样的代码,它只会使你的类更难以使用。

答案 1 :(得分:0)

可选参数在VB(和其他一些语言)中可用,但不是C#。 C#强制你重载函数。

如果您愿意,可以将“默认”值传递给可选参数。只要你知道这个函数会如何响应,我就不会看到它会如何伤害任何东西。

编辑:我刚看了你的iphone标签......对不起!在这方面,我不知道我的答案对你有多重要