-1

JSON配列を返しています:配列2 :( {"checkin_ID" = 123}、{"checkin_ID" = 121;}、{"checkin_ID" = 99;}など)

私のコードでは、各セルに独自のcheckin_IDがあります。セルのcheckin_IDがJSON配列の任意の数値または文字列と一致する場合、ボタンを表示したいと思います。

何か案は?

コード:

ViewDidLoad:

NSError *error = nil; NSDictionary *dict2 = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData2 error&error2]; 

if (dict2) { 
    rows2 = [dict2 objectForKey:@"likes"]; 
}

セルの構築:

NSPredicate *checkinIDPredicate = [NSPredicate predicateWithFormat:@"checkin_ID == %d", myInt]; 

NSArray *matchingCheckins = [rows2 filteredArrayUsingPredicate:checkinIDPredicate];

if([matchingCheckins count] > 0) // Show the button, etc. 

NSLogの場合、コードを追加した後...述語checkin_ID = 121一致する述語()

4

1 に答える 1

0

まず、データを解析して辞書の配列にし、後で使用できるようにプロパティに格納します。

NSError *error = nil;
self.checkins = [NSJSONSerialization JSONObjectWithData:checkinData options:0 error:&error];

checkinDataNSDataJSON 文字列から簡単に作成できるオブジェクトです。

行のセルが構築されているときに、チェックインのリストをターゲット ID でフィルタリングします。

NSPredicate *checkinIDPredicate = [NSPredicate predicateWithFormat:@"checkin_ID == %d", cellCheckinID];
NSArray *matchingCheckins = [self.checkins filteredArrayUsingPredicate:checkinIDPredicate];
if([matchingCheckins count] > 0)
    // Show the button, etc.

このコードはテストされていないため、コンパイラ エラーまたは論理エラーが含まれている可能性がありますが、それが要点です。

于 2012-12-17T19:05:35.087 に答える