Loop through the array and replace each character in turn :
// Get the two arrays of characters to replace and their replacements
NSArray *fromArray = [NSArray arrayWithObjects:@"a", @"b", @"c", @"d", @"e", nil];
NSArray *toArray = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", nil];
// Make a mutable version of our string
NSMutableString *newString = [NSMutableString stringWithString:@"Hello World"];
// Deal with each replacement in turn
for (uint n = 0; n < [fromArray count]; ++n)
[newString replaceOccurrencesOfString:[fromArray objectAtIndex:n] withString:[toArray objectAtIndex:n] options:NSLiteralSearch range:NSMakeRange(0, [newString length])];
// Output the new string
NSLog(@"%@", newString);
This code's not great though - what if the two arrays are different lengths?