我已经(在网站上有作者许可)一个包装类,用于将获取请求写入我的核心数据堆栈。
写这篇文章的人说它有“可选参数”,我想知道这意味着什么。
Anywho,静态方法都是这样编写的......
+(NSMutableArray *) searchObjectsFromContext
: (NSString*) entityName
: (NSPredicate*) predicate
: (NSString*) sortKey
: (BOOL) sortAscending
: (NSManagedObjectContext *) managedObjectContext
我一直在运行它并将“nil”传递给不需要的参数。这是正确的做法吗?
此外,冒号之间没有额外的方法文本是否有意义?
感谢您的帮助
奥利弗
答案 0 :(得分:3)
如果没有阅读文档或检查源代码,传递'nil'是正确的做法是不可能的。但这可能是正确的,因为这是大多数课程中的标准行为。
创建没有关联文本的方法参数(正如您在发布的代码中看到的那样)是完全合法的...但它也非常丑陋,您将失去Obj-C冗长的所有好处。绝对没有理由编写这样的代码,它只会使你的类更难以使用。
答案 1 :(得分:0)
可选参数在VB(和其他一些语言)中可用,但不是C#。 C#强制你重载函数。
如果您愿意,可以将“默认”值传递给可选参数。只要你知道这个函数会如何响应,我就不会看到它会如何伤害任何东西。
编辑:我刚看了你的iphone标签......对不起!在这方面,我不知道我的答案对你有多重要