gpt4 book ai didi

objective-c - NSComparator 错误 : incompatible block pointer types initializing

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:29 26 4
gpt4 key购买 nike

执行此 NSComparator:

NSComparator comparatore = ^NSComparisonResult(NSMutableDictionary *aDictionary, NSMutableDictionary *anotherDictionary) {
return [[aDictionary objectForKey:@"Item"] localizedCaseInsensitiveCompare:[anotherDictionary objectForKey:@"Item"]];
};
lista = [listaNonOrdinata sortedArrayUsingComparator:comparatore];

我得到这个错误:不兼容的 block 指针类型正在初始化“int (^)(struct NSMutableDictionary *, struct NSMutableDictionary *)”,应为“NSComparator”

我已在本网站和官方指南中了解到此错误,但尚未找到解决方案。

我已经尝试了一切,也许这里有人可以帮助我,或者也许有人知道如何用另一种方式做同样的事情。谢谢!

最佳答案

NSComparator 是一个需要两个 id 的 block 。您需要将 id 作为参数类型,并在必要时在您的 block 中进行转换(在这种情况下,没有必要):

NSComparator comparatore = ^NSComparisonResult(id aDictionary, id anotherDictionary) {
return [[aDictionary objectForKey:@"Item"] localizedCaseInsensitiveCompare:[anotherDictionary objectForKey:@"Item"]];
};
lista = [listaNonOrdinata sortedArrayUsingComparator:comparatore];

关于objective-c - NSComparator 错误 : incompatible block pointer types initializing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18014473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com