использование этого исправления из комментария @Liam помогло мне это исправить, я просто публикую сообщение на случай, если это будет полезно кому-то еще,
NSDateFormatter * parser = [[NSDateFormatter alloc] init];
NSLocale * locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]autorelease];
[parser setLocale:locale ];
[parser setFormatterBehavior:NSDateFormatterBehavior10_4];
[parser setDateFormat:@"M/d/yyyy h:mm:ss a"];
NSDate * orderDate = [parser dateFromString:str ];
я понял, что обнаруженная ошибка возникает только тогда, когда пользователь iphone устанавливает свои часы на 24-часовое военное время,