Skip to content

Instantly share code, notes, and snippets.

@Broich
Last active August 29, 2015 14:00
Show Gist options
  • Save Broich/11041839 to your computer and use it in GitHub Desktop.
Save Broich/11041839 to your computer and use it in GitHub Desktop.
I wonder if the operation addObjectsFromArray happens in constant time
- (void)createWallOfFame:(NSArray *)newWallOfFameMembers
{
NSLog(@"add %i new member(s) into wall of fame", (int)newWallOfFameMembers.count);
NSMutableArray *currentMembers = [NSMutableArray arrayWithArray:self.members];
if (currentMembers.count > 0) { // only if members are available there is a reason to delete them an the end
NSRange rangeForMembersToDelete = NSMakeRange(currentMembers.count-newWallOfFameMembers.count, newWallOfFameMembers.count);
NSLog(@"delete members from position: %d with length: %d", (int)rangeForMembersToDelete.location, (int)rangeForMembersToDelete.length);
[currentMembers removeObjectsInRange:rangeForMembersToDelete];
}
NSMutableArray *newMembers = [NSMutableArray array]; // create a new array and insert the new members at the beginning.
for (NSDictionary *dict in newWallOfFameMembers) {
BKErsteReiheMember *ersteReiheMember = [[BKErsteReiheMember alloc] initWithUserInformation:dict];
[newMembers addObject:ersteReiheMember];
}
if (newMembers.count < [kMaxWallOfFameMembers integerValue]) { // Afterwards add the old entries behind the last new member
[newMembers addObjectsFromArray:currentMembers];
}
self.members = newMembers;
[self saveMembers];
NSLog(@"number of members in wall of fame: %d", (int)self.members.count);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment