If you want to know about why this happning then refer @Nitin's answer, and if you want to solve in other way then just use following code
-(void) listLetter:(NSTimer*) myTimer
static int pos = 1;
self.listChar.text = [word substringToIndex:pos];
if (++pos > word.length) {
[myTimer invalidate];
}
}