2011-07-22 75 views
0

我要搜索的NSDate的数组,所以在这里我做什么:传递函数作为参数

searchResult = CFArrayBSearchValues((CFArrayRef)someDateArray, arrayRange, dateToFind, CFDateCompare, nil); 

不过,我得到这样的警告:

过客“CFComparisonResult(CFDateRef不兼容的指针类型, CFDateRef,无效)”到类型的参数 'CFComparatorFunction'(又名 'CFComparisonResult()(常量无效*,常量无效*,无效*)')

如何正确传递函数作为参数?我想我的语法错了。

回答

4

您需要将函数指针转换为CFComparatorFunction类型,因为它具有更明确的签名(它使用CFDateRef而不是void *)。

searchResult = CFArrayBSearchValues((CFArrayRef)someDateArray, arrayRange, dateToFind, (CFComparatorFunction)CFDateCompare, nil);