2016-04-02 21 views
0

Tüm jsonum içeren bir NSArray (moodArray) var ve id içeren başka bir NSArray (idArray) sahibiyim ve id idArında kimliği mArArında mevcutsa moodArray? Nasıl yapılır ? TeşekkürlerNSArray nesnesini kaldır (Objective-C)

Kodum:

- (void)fetchEntries 
    { 
     AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
     [manager GET:API_V3_CHANNEL_URL parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) { 

      NSDictionary *searchDict = responseObject; 

      // On filtre le json 
      NSPredicate *firstNamePredicate = [NSPredicate predicateWithFormat:@"status == %@", @"LIVE"]; 
      NSPredicate *lastNamePredicate = [NSPredicate predicateWithFormat:@"status == %@", @"PAUSE"]; 

      NSPredicate *compoundPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:@[firstNamePredicate, lastNamePredicate]]; 

// My idArray 
      NSArray *idArray = [[NSArray alloc] initWithObjects:@"56ead10ae3c9a053398b4580", @"56efq10ae3c9a053398b4590", nil]; 

// My moodArray (content alljson)  
      self.moodArray = [[searchDict objectForKey:@"CONTESTS"] filteredArrayUsingPredicate:compoundPredicate]; 



      [self.collectionView reloadData]; 
     } failure:^(NSURLSessionTask *operation, NSError *error) { 
      NSLog(@"Error: %@", error); 
     }]; 

    } 

Benim moodArray (json): My json

moodArray aynı kimlik içeriyor olmadığını kontrol edeceğini idArray ve böylece aynı kimliğe sahip nesneleri silerseniz moodArray

cevap

0

JSON nesneleri dizeleri var mı? Eğer öyleyse, NSJSONSerialization kullanarak bunları bir sözlük haline getirip ID'yi çıkartacağım. gibi bir şey ile diziyi temiz olabilir

-(NSDictionary*) convertJSONStringToDictionary:(NSString*)jsonString 
{ 
    NSError   *error; 
    NSData   *objectData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:objectData 
                options:NSJSONReadingMutableContainers 
                 error:&error]; 
    return dictionary; 

}: Ben çalışabilir düşünüyorum

-(NSArray*)removeIDs:(NSArray*)idArray fromArray:(NSArray*)moodArray 
{ 
    NSMutableArray   *cleanedMoodArray = [NSMutableArray array]; 

    for (NSString *jsonString in moodArray) { 
     NSDictionary *moodDictionary = [self convertJSONStringToDictionary:jsonString]; 
     NSString  *objectID = [moodDictionary objectForKey:@"id"]; 

     if (nil != objectID) { 
       if (![idArray containsObject:objectID]) 
        [cleanedMoodArray addObject:moodDictionary]; 
     } 

    } 

    return cleanedMoodArray; 
} 
+0

ama şimdi (NSExecption) çökmesine, bu benim kod ekran görüntüsü: http://mbsolution.be/victor/capture.png –

+0

İstisnalar bunun çökmekte olduğunu söylüyor? Bir istisna kırılma noktası aktif olarak çalıştırmayı denediniz mi? – user2002649

+0

.m dosyamı gönderebilir miyim? Bakacaksanız veya benim sorunumsa –