Objective c NSComparator出错:不兼容的块指针类型正在初始化
执行此操作时,比较程序:Objective c NSComparator出错:不兼容的块指针类型正在初始化,objective-c,sorting,compiler-errors,objective-c-blocks,comparator,Objective C,Sorting,Compiler Errors,Objective C Blocks,Comparator,执行此操作时,比较程序: NSComparator comparatore = ^NSComparisonResult(NSMutableDictionary *aDictionary, NSMutableDictionary *anotherDictionary) { return [[aDictionary objectForKey:@"Item"] localizedCaseInsensitiveCompare:[anotherDictionary objectFo
NSComparator comparatore = ^NSComparisonResult(NSMutableDictionary *aDictionary, NSMutableDictionary *anotherDictionary) {
return [[aDictionary objectForKey:@"Item"] localizedCaseInsensitiveCompare:[anotherDictionary objectForKey:@"Item"]];
};
lista = [listaNonOrdinata sortedArrayUsingComparator:comparatore];
我得到这个错误:
不兼容的块指针类型初始化“int(^)(struct-NSMutableDictionary*,struct-NSMutableDictionary*)”,应为“NSComparator”
我在这个网站和官方指南上读到了这个错误,但我还没有找到解决办法
我什么都试过了,也许这里有人能帮我,或者也许有人知道如何用另一种方式做同样的事情。
谢谢
NSComparator
是一个需要两个id
s的块。您需要将id
作为参数类型,并在必要时在块内执行强制转换(在这种情况下,不需要):
NSComparator comparatore = ^NSComparisonResult(id aDictionary, id anotherDictionary) {
return [[aDictionary objectForKey:@"Item"] localizedCaseInsensitiveCompare:[anotherDictionary objectForKey:@"Item"]];
};
lista = [listaNonOrdinata sortedArrayUsingComparator:comparatore];