Kolla raden:
[thePeople addObjectsFromArray:[thePeopleFromFile componentsSeparatedByString:@\n]];
thePeopleFromFile är @1|2|3|4|5\n. -componentsSeparatedByString: kommer att splitta det till två element, @1|2|3|4|5 och @"", det vill säga tomma strängen. Det försöker du sedan splitta över @|, och sedan sker en exception vid -objectAtIndex:.
Lösningen är att se till att du bara stoppar in valida element i din array. Lite sanity checks på att dina arrayer innehåller vad du tror de innehåller innan du går och plockar ut element kan också vara nyttigt.
För övrigt har du glömt att release stringFromFileAtPath. Du är ansvarig för det objektet i och med att du skapade det med alloc, så kör release på det i slutet av metoden.
Jag hittade det här felet genom att lägga in i symbolisk breakpoint på "-[NSException raise]" och sen köra det i debuggern och titta påalla variabler.