【问题标题】:NSPredicate doesn't filter data for long value in iOS 5NSPredicate 不会在 iOS 5 中过滤长值数据
【发布时间】:2012-11-27 07:23:14
【问题描述】:

我正在尝试使用 NSPredicate 从数组中过滤数据。 我的数组 (arrLikes) 包含来自服务器的以下数据

{
    "id":17,
    "likes":[
        {
        "likedBy":
            {
             "firstName":"Bob",
             "lastName":"Builder",
             "id":1
            }
        }],
    "comments":[]
}

我正在尝试从下面的数组中过滤数据

long loggedInUserId = [[dictUserInfo objectForKey:@"id"] longValue];
NSPredicate *likePredicate = [NSPredicate predicateWithFormat:@"id == %ld", loggedInUserId ];
NSArray *filteredLikeArray  = [arrLikes filteredArrayUsingPredicate:likePredicate];

即使我的 loggedInUserId 为 1,filteredLikeArray 计数也会返回 0。 上面的代码有什么问题? 任何形式的帮助表示赞赏。谢谢。

【问题讨论】:

    标签: ios5 nsarray filtering nspredicate


    【解决方案1】:

    您是否尝试将 long 转换为 NSString,如下所示?

    long loggedInUserId = 17;
    NSString *stringUserId = [NSString stringWithFormat:@"%ld", loggedInUserId];
    NSPredicate *likePredicate = [NSPredicate predicateWithFormat:@"id == %@", stringUserId];
    NSArray *filteredLikeArray  = [arrLikes filteredArrayUsingPredicate:likePredicate];
    

    【讨论】:

    • “likes”数组中有一个“id”标签,你要过滤“likes”数组中的项目吗?
    • 是的...我需要过滤“likes”数组中的项目
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多