Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inconsistent results from setting the fetchOffset of NSFetchRequest in CoreData

I have the method below which gets a page of CoreData entities out. When I pass in a value for start I get inconsistent results. Sometimes it will page as I would expect, other times it really really doesn't. It seems to get results from somewhere near where I request, but often interleaved with other results or skipping some.

I've proved this by logging all the results whenever I request a specific page and comparing the page of results to the entire list. Debug logs below

Any thoughts as to how / why this should be happening?

+(NSArray *)fetchMessagesForUser:(int32_t)userId connectionUserId:(int32_t)connectionUserId sortASC:(BOOL)sortASC startAt:(int)start size:(int)size sinceMessage:(ChatMessage*)since
{
    NSManagedObjectContext *context = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext;
    NSFetchRequest *fetchRequest = [ChatMessage fetchRequest];
    NSString *query = @"";
    query = [NSString stringWithFormat:@"(receiverId == %1$d && senderId == %2$d ) || (receiverId == %2$d  && senderId == %1$d) ",userId, connectionUserId];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:query];
    fetchRequest.predicate = predicate;

    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"dateSent" ascending:sortASC];
    [fetchRequest setSortDescriptors:@[sort]];

    if (size > 0) {
      fetchRequest.fetchLimit = size;
    }
    if (start > 0) {
      fetchRequest.fetchOffset = start;
    }
    NSError *error = nil;
    NSArray *messages = [context executeFetchRequest:fetchRequest error:&error];

    if (start > 0) {
      fetchRequest.fetchLimit = 0;
      fetchRequest.fetchOffset = 0;
      NSArray *allMessages = [context executeFetchRequest:fetchRequest error:&error];
      for (int i = 0; i < allMessages.count; i++) {
         bool inPaged = NO;
         for (int j = 0; j < messages.count; j++) {
            if ([allMessages[i] text] == [messages[j] text]) {
               inPaged = YES;
            }
         }
         NSLog(@"DEBUG fetchOffset: %@: %d", inPaged ? @"SAME" : @"DIFF", [allMessages[i] id]);
      }
      NSLog(@"DEBUG fetchOffset: Finished iterating and comparing the paged vs full result set");
    }

    //Remove non-unique messages (uniqueness determined by ID)
    NSMutableArray* originalMessages = [NSMutableArray arrayWithArray:messages];
    NSMutableArray* filteredMessages = [NSMutableArray array];
    for (int i = 0; i < [originalMessages count]; i++) {
        for (int j = 0; j < [originalMessages count]; j++) {
            if (i != j && [[originalMessages objectAtIndex:i] text] == [[originalMessages objectAtIndex:j] text]) {
                [context deleteObject:[originalMessages objectAtIndex:j]];
                [originalMessages removeObject:[originalMessages objectAtIndex:j]];
            }
        }
        [filteredMessages addObject:[originalMessages objectAtIndex:i]];
    }
    return filteredMessages;
}

So running this yields:

2018-05-21 12:15:40.800686+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22506
2018-05-21 12:15:40.800860+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22505
2018-05-21 12:15:40.801002+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22500
2018-05-21 12:15:40.801168+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22499
2018-05-21 12:15:40.801335+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22498
2018-05-21 12:15:40.801473+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22497
2018-05-21 12:15:40.801606+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22496
2018-05-21 12:15:40.801756+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22495
2018-05-21 12:15:40.801852+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22494
2018-05-21 12:15:40.801965+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22491
2018-05-21 12:15:40.802108+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22490
2018-05-21 12:15:40.802228+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22489
2018-05-21 12:15:40.802370+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22488
2018-05-21 12:15:40.802583+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22487
2018-05-21 12:15:40.802838+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22486
2018-05-21 12:15:40.803034+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22485
2018-05-21 12:15:40.803251+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22484
2018-05-21 12:15:40.803479+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22483
2018-05-21 12:15:40.803723+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22478
2018-05-21 12:15:40.803946+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 SAME: 22477
2018-05-21 12:15:40.804228+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22476
2018-05-21 12:15:40.804399+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22475
2018-05-21 12:15:40.804631+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22474
2018-05-21 12:15:40.804849+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22473
2018-05-21 12:15:40.805158+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22472
2018-05-21 12:15:40.805362+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22469
2018-05-21 12:15:40.805585+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22464
2018-05-21 12:15:40.805766+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22463
2018-05-21 12:15:40.805984+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22462
2018-05-21 12:15:40.806185+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22461
2018-05-21 12:15:40.806385+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22460
2018-05-21 12:15:40.806595+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22459
2018-05-21 12:15:40.806843+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22458
2018-05-21 12:15:40.807031+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22457
2018-05-21 12:15:40.807265+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22456
2018-05-21 12:15:40.807453+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22455
2018-05-21 12:15:40.807649+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22454
2018-05-21 12:15:40.807862+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22453
2018-05-21 12:15:40.808007+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22450
2018-05-21 12:15:40.808216+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22449
2018-05-21 12:15:40.808430+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22445
2018-05-21 12:15:40.808607+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22444
2018-05-21 12:15:40.808775+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22441
2018-05-21 12:15:40.808897+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22438
2018-05-21 12:15:40.809049+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22437
2018-05-21 12:15:40.809209+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22434
2018-05-21 12:15:40.809352+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22433
2018-05-21 12:15:40.809507+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22432
2018-05-21 12:15:40.809688+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22429
2018-05-21 12:15:40.809848+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22428
2018-05-21 12:15:40.814283+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22427
2018-05-21 12:15:40.814416+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22426
2018-05-21 12:15:40.814593+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22425
2018-05-21 12:15:40.814727+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22424
2018-05-21 12:15:40.814849+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22423
2018-05-21 12:15:40.815018+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22421
2018-05-21 12:15:40.815161+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22417
2018-05-21 12:15:40.815276+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22416
2018-05-21 12:15:40.815384+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22415
2018-05-21 12:15:40.815492+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22414
2018-05-21 12:15:40.815617+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22413
2018-05-21 12:15:40.815749+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22412
2018-05-21 12:15:40.815872+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22411
2018-05-21 12:15:40.815965+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22410
2018-05-21 12:15:40.816085+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22409
2018-05-21 12:15:40.816180+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22408
2018-05-21 12:15:40.816302+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22407
2018-05-21 12:15:40.817152+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 10 DIFF: 22406
2018-05-21 12:15:40.817326+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: Finished iterating and comparing the paged vs full result set
2018-05-21 12:16:54.251517+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22506
2018-05-21 12:16:54.251660+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22505
2018-05-21 12:16:54.251820+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22500
2018-05-21 12:16:54.251937+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22499
2018-05-21 12:16:54.252047+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22498
2018-05-21 12:16:54.252166+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22497
2018-05-21 12:16:54.252284+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22496
2018-05-21 12:16:54.252408+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22495
2018-05-21 12:16:54.252526+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22494
2018-05-21 12:16:54.252609+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22491
2018-05-21 12:16:54.252754+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22490
2018-05-21 12:16:54.252885+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22489
2018-05-21 12:16:54.252988+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22488
2018-05-21 12:16:54.253109+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22487
2018-05-21 12:16:54.253230+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22486
2018-05-21 12:16:54.253378+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22485
2018-05-21 12:16:54.253634+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22484
2018-05-21 12:16:54.253874+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22483
2018-05-21 12:16:54.254051+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22478
2018-05-21 12:16:54.254318+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 SAME: 22477
2018-05-21 12:16:54.254489+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22476
2018-05-21 12:16:54.254741+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22475
2018-05-21 12:16:54.254923+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22474
2018-05-21 12:16:54.255103+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22473
2018-05-21 12:16:54.255327+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22472
2018-05-21 12:16:54.255549+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22469
2018-05-21 12:16:54.255712+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22464
2018-05-21 12:16:54.255868+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22463
2018-05-21 12:16:54.256065+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22462
2018-05-21 12:16:54.256349+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22461
2018-05-21 12:16:54.256567+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22460
2018-05-21 12:16:54.256784+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22459
2018-05-21 12:16:54.257163+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22458
2018-05-21 12:16:54.257400+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22457
2018-05-21 12:16:54.257617+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22456
2018-05-21 12:16:54.257823+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22455
2018-05-21 12:16:54.258047+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22454
2018-05-21 12:16:54.258252+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22453
2018-05-21 12:16:54.258495+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22450
2018-05-21 12:16:54.258760+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22449
2018-05-21 12:16:54.259016+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22445
2018-05-21 12:16:54.259250+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22444
2018-05-21 12:16:54.259426+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22441
2018-05-21 12:16:54.259666+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22438
2018-05-21 12:16:54.259869+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22437
2018-05-21 12:16:54.260084+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22434
2018-05-21 12:16:54.260284+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22433
2018-05-21 12:16:54.260463+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22432
2018-05-21 12:16:54.260689+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22429
2018-05-21 12:16:54.260869+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22428
2018-05-21 12:16:54.261060+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22427
2018-05-21 12:16:54.261249+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22426
2018-05-21 12:16:54.261393+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22425
2018-05-21 12:16:54.261519+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22424
2018-05-21 12:16:54.261726+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22423
2018-05-21 12:16:54.261895+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22421
2018-05-21 12:16:54.262061+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22417
2018-05-21 12:16:54.266362+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22416
2018-05-21 12:16:54.266543+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22415
2018-05-21 12:16:54.266730+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22414
2018-05-21 12:16:54.266901+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22413
2018-05-21 12:16:54.267026+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22412
2018-05-21 12:16:54.267106+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22411
2018-05-21 12:16:54.267186+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22410
2018-05-21 12:16:54.267290+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22409
2018-05-21 12:16:54.267474+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22408
2018-05-21 12:16:54.267586+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22407
2018-05-21 12:16:54.267702+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 19 DIFF: 22406
2018-05-21 12:16:54.267809+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: Finished iterating and comparing the paged vs full result set
2018-05-21 12:19:17.342345+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22506
2018-05-21 12:19:17.342518+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22505
2018-05-21 12:19:17.342665+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22500
2018-05-21 12:19:17.342818+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22499
2018-05-21 12:19:17.342937+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22498
2018-05-21 12:19:17.343049+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22497
2018-05-21 12:19:17.343142+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22496
2018-05-21 12:19:17.343269+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22495
2018-05-21 12:19:17.343406+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22494
2018-05-21 12:19:17.343713+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22491
2018-05-21 12:19:17.344044+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22490
2018-05-21 12:19:17.344176+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22489
2018-05-21 12:19:17.344372+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22488
2018-05-21 12:19:17.344696+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22487
2018-05-21 12:19:17.344853+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22486
2018-05-21 12:19:17.345044+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22485
2018-05-21 12:19:17.345220+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22484
2018-05-21 12:19:17.345566+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22483
2018-05-21 12:19:17.345811+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22478
2018-05-21 12:19:17.346076+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22477
2018-05-21 12:19:17.346296+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22476
2018-05-21 12:19:17.346558+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22475
2018-05-21 12:19:17.346758+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22474
2018-05-21 12:19:17.347009+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22473
2018-05-21 12:19:17.347284+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22472
2018-05-21 12:19:17.347519+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22469
2018-05-21 12:19:17.347769+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22464
2018-05-21 12:19:17.348020+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22463
2018-05-21 12:19:17.348312+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22462
2018-05-21 12:19:17.348582+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 SAME: 22461
2018-05-21 12:19:17.348887+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22460
2018-05-21 12:19:17.349143+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22459
2018-05-21 12:19:17.349351+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22458
2018-05-21 12:19:17.349544+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22457
2018-05-21 12:19:17.349903+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22456
2018-05-21 12:19:17.350105+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22455
2018-05-21 12:19:17.350390+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22454
2018-05-21 12:19:17.350681+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22453
2018-05-21 12:19:17.350914+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22450
2018-05-21 12:19:17.351102+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22449
2018-05-21 12:19:17.351314+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22445
2018-05-21 12:19:17.351539+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22444
2018-05-21 12:19:17.351829+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22441
2018-05-21 12:19:17.352039+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22438
2018-05-21 12:19:17.352298+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22437
2018-05-21 12:19:17.352536+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22434
2018-05-21 12:19:17.352891+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22433
2018-05-21 12:19:17.353091+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22432
2018-05-21 12:19:17.353326+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22429
2018-05-21 12:19:17.353538+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22428
2018-05-21 12:19:17.353866+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22427
2018-05-21 12:19:17.354123+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22426
2018-05-21 12:19:17.354437+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22425
2018-05-21 12:19:17.354662+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22424
2018-05-21 12:19:17.354830+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22423
2018-05-21 12:19:17.355050+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22421
2018-05-21 12:19:17.355259+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22417
2018-05-21 12:19:17.355454+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22416
2018-05-21 12:19:17.355644+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22415
2018-05-21 12:19:17.355881+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22414
2018-05-21 12:19:17.356109+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22413
2018-05-21 12:19:17.356387+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22412
2018-05-21 12:19:17.356555+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22411
2018-05-21 12:19:17.356742+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22410
2018-05-21 12:19:17.356931+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22409
2018-05-21 12:19:17.357140+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22408
2018-05-21 12:19:17.357365+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22407
2018-05-21 12:19:17.357543+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: 20 DIFF: 22406
2018-05-21 12:19:17.357734+0100 Link-ages Hub[68958:9889355] DEBUG fetchOffset: Finished iterating and comparing the paged vs full result set
like image 660
Matt Fellows Avatar asked May 21 '18 11:05

Matt Fellows


1 Answers

It is hard to tell what you are trying to do here, but this could be the source of your bug.

if ([allMessages[i] text] == [messages[j] text]) {

That is not a string comparison so it will have unpredictable results if you are using it to compare strings. (Due to internal optimisations some short strings will actually share the same memory address, but most strings will not be equal even if they contain the exact same text)

You should use isEqualToString: to compare strings.

if ([[allMessages[i] text] isEqualToString:[messages[j] text]]) {

-

However even that might not be what you want in your debug test, aren't you trying to compare the actual message objects here? In that case you can use a direct object comparison.

if (allMessages[i] == messages[j]) {

like image 170
trapper Avatar answered Nov 20 '22 13:11

trapper