Если вы действительно хотите повторно использовать строку, вы можете использовать что-то вроде
[result setString:@""];
[result appendFormat:@"the value is now %d", i];
Однако, если вы не заметили проблемы с производительностью / памятью, просто используйте
NSString *result = [NSString stringWithFormat:@"the value is %d", i];
/* ... */
result = [NSString stringWithFormat:@"the value is now %d", i];
Как правило, работать с неизменяемыми объектами проще, потому что они не могут измениться у вас под ногами.