0

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 を返します。上記のコードで何が問題なのですか? どんな種類の助けも大歓迎です。ありがとう。

4

1 に答える 1

0

次のように long を NSString に変換しようとしましたか?

long loggedInUserId = 17;
NSString *stringUserId = [NSString stringWithFormat:@"%ld", loggedInUserId];
NSPredicate *likePredicate = [NSPredicate predicateWithFormat:@"id == %@", stringUserId];
NSArray *filteredLikeArray  = [arrLikes filteredArrayUsingPredicate:likePredicate];
于 2012-11-27T07:46:55.513 に答える