Leyendo un .csv en NSObjects y luego ordenándolos por diferentes criterios

Esta es más una pregunta abierta que una pregunta relacionada con un error, por lo que si no te gusta responder a este tipo de preguntas, no te desanimes.

Tengo una lista enorme (!) De envíos en un archivo .csv, separados por,

La matriz está organizada así:
Se repite con diferentes datos unas 500 veces.

Ahora, quiero que esto se lea en objetos, que se pueden usar más para rellenar unUITableView Actualmente, codifico datos en los archivos de objetos, como este

arrayWithObjectsForTableView = [[NSMutableArray alloc] init];
if ([boatsFromOwner isEqualToString:@"Owner1"]) {
    cargoShips* ship = [[cargoShips alloc]init];
    ship.name = @"name1";
    ship.size = 1000;
    ship.owner = @"Owner1";

    [self.boatsForOwner addObject:ship];

    ship = [[cargoShips alloc]init];
    ship.name = @"Name 2";
    ship.size = 2000;
    ship.owner = @"Owner2";

Y así sucesivamente con if-else's. Este es un mal método, ya que 1) es aburrido y lleva mucho tiempo 2) Me toma aún más tiempo si quiero actualizar la información. Por lo tanto, pensé que sería más inteligente leer mediante programación desde la matriz en lugar de hacerlo yo mismo. Sí, el capitán obvio vino a visitar mi cerebro.

Así que, a la pregunta! ¿Cómo puedo leer el archivo .csv que se ve así: añadir las naves de, digamos, propietario, a unNSMutableArray, en forma de objetos. (Para que puedan ser utilizados para alimentar a miUITableView con los barcos.

También me gustaría tener la opción de ordenar por diferentes elementos, como País de construcción, Operador, etc. ¿Cómo puedo hacer que el código que alimenta a los buques relevantes se lea desde .csv en los objetos? No sé mucho de programación, por lo que las respuestas en profundidad serían muy apreciadas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta