我想搜索一个NSDate数组,所以我在这里做:
searchResult = CFArrayBSearchValues((CFArrayRef)someDateArray, arrayRange, dateToFind, CFDateCompare, nil);
但是,我收到了这个警告:
不兼容的指针类型将'CFComparisonResult(CFDateRef,CFDateRef,void )'传递给'CFComparatorFunction'类型的参数(又名'CFComparisonResult()(const void *,const void *,void *)' )
如何正确传递函数作为参数?我想我的语法错了。
答案 0 :(得分:4)
您需要将函数指针强制转换为CFComparatorFunction
类型,因为它具有更明确的签名(它使用CFDateRef
而不是void *
)。
searchResult = CFArrayBSearchValues((CFArrayRef)someDateArray, arrayRange, dateToFind, (CFComparatorFunction)CFDateCompare, nil);