嘿,这里是快速问题。我相信有一个简单的答案。
来自 PHP,我习惯于用这样的默认参数值声明一个函数:
function myFunction ($array, $sort = FALSE) {
}
如果未填充排序参数,函数将继续使用默认值 false。在Obj-C中,有没有类似的东西?
我正在完成我的“在 Objective-C 2.0 中编程”一书中的练习,它希望我重写一个分数类打印函数以默认不减少分数,但如果值为 TRUE reduce 给出,继续减少分数,然后打印。本章(书中也没有任何地方)提供了这方面的任何信息。
谢谢你们的帮助 :D
最佳答案
Objective-C 本身不存在默认参数。他们不能真的,因为参数计数与方法名称密不可分——每个冒号对应一个参数。
不过,Objective-C 程序员通过创建“方便”的方法来实现类似的目标,这些方法只调用更“原始”的方法,其中一些参数填充有默认值。例如,-[NSArray indexOfObject:]
可以实现为 -[NSArray indexOfObject:inRange:]
的版本,参数为 NSMakeRange(0, [self count])
用于 inRange:
部分。
不过,在这种情况下,我不认为您的书在谈论那个。我认为这只是意味着如果为 reduce:
参数给出 YES 则减少分数,如果给出 NO 则不减少它。
关于php - Objective-C 默认参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/871796/