• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 斯皮卡-iOS : "incompatible block pointer types"

[复制链接]
菜鸟教程小白 发表于 2022-12-12 11:54:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我已经下载了适用于 iOS 和 Android 的“Spika”脚本,但遇到了以下问题。尝试编译时出现以下错误:

Incompatible block pointer types sending 'int (^)(ModelMessage *__strong, ModelMessage *__strong)' to parameter of type 'NSComparator' (aka 'NSComparisonResult (^)(__strong id, __strong id)')

我试图通过将其更改为 NSComparisonResult 来解决此问题,但似乎无法理解问题所在。

代码如下:

NSMutableArray *removeTarget = [[NSMutableArray alloc] init];

for(int i = 0; i < [result count] ; i++){

    ModelMessage *message = [result objectAtIndex:i];

    if(message.valid == NO)
        [removeTarget addObject:message];

}

for(int ii = 0; ii < [removeTarget count] ; ii++){
    [result removeObject:[removeTarget objectAtIndex:ii]];
}

NSArray *sortedAry = [result sortedArrayUsingComparator:^(ModelMessage *a, ModelMessage *b) {
    return a.modified> b.modified;
}];

int fetchNum = PagingMessageFetchNum;
if(fetchNum > sortedAry.count)
    fetchNum = sortedAry.count;

return sortedAry;

//return [sortedAry subarrayWithRange:NSMakeRange(0, fetchNum)];
}

问题出在:

NSArray *sortedAry = [result sortedArrayUsingComparator:^(ModelMessage *a, ModelMessage *b) {
    return a.modified> b.modified;

任何帮助将不胜感激。谢谢大家。



Best Answer-推荐答案


您不应该像上面的代码那样返回 BOOL 结果。 结果必须是 NSComparisonResult 类型,即枚举

enum {
  NSOrderedAscending = -1,
  NSOrderedSame,
  NSOrderedDescending
};

在你的情况下,排序 block 应该是这样的

NSArray *sortedAry = [result sortedArrayUsingComparator:^(ModelMessage *a, ModelMessage *b) {
    if(a.modified<b.modified)
        return NSOrderedAscending;
    else if(a.modified>b.modified)
        return NSOrderedDescending;
    else 
        return NSOrderedSame;
}];

关于ios - 斯皮卡-iOS : "incompatible block pointer types",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26051244/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap