2010-11-07 14 views
1

Difficile d'obtenir le titre correct car il y a tellement à dire. J'ai eu ce NSArray (Une partie de celui-ci): Lun, 06:00, Radioshow Matin, Lun, 10:00, Radio déjeuner, 14:00, Radio après-midi et ainsi de suite. Le NSArray est d'une plist dans l'application.Recherche d'un NSArray o chaînes avec un NSDate

Ce que je dois construire (et a échoué avec) est une fonction de recherche qui me montre le bon programme avec ces valeurs de recherche: searchDay et searchTime

Ces deux valeurs sont de NSDate. J'ai été Google pour environ et heure maintenant et n'a pas trouvé quelque chose d'utile, donc mon dernier espoir est de stackoverflow pour me montrer ce qui me manque.

J'ai été barboter avec dateFromString, comparer, timeIntervalSinceNow, mais pour une raison quelconque n'a pas réussi à réaliser ce que je suis sur le point de faire.

Utile pour toute aide fournie.

TIA Mattias

+0

Je suppose que vous avez un tableau, c'est-à-dire sous forme de [NSDate, NSString, NSDate, NSString, ...] '? –

+0

Non, j'ai un tableau de [NSString, NSString, NSString, NSString, ....] –

Répondre

1

Vous devez utiliser un NSArray de NSDictionary objets au lieu de différents types d'objets dans votre NSArray:

NSDictionary *morningShow = [NSDictionary dictionaryWithObjectsAndKeys:@"Mon",@"day","10:00",@"time","morning",@"name",nil]; 

ajouter ensuite que votre tableau. Ensuite, lorsque vous effectuez une recherche, vous avez une structure de données uniforme à rechercher à l'intérieur de.

+0

Cela semble intéressante phooze! Besoin de vérifier un peu plus. –

0

Je pense que je l'ai résolu. Mais je dois dire que je suis intrigué par la réponse de phooze.

La façon dont je le fais maintenant est de lire les valeurs (NSString) du tableau en les convertissant en un objet NSDate et en les comparant avec timeIntervalSinceDate. Par ce que je peux comprendre si currentTime est entre deux fois dans le tableau et tel que je sais quelle émission est allumée. Je viens de trouver la solution, le code de base fonctionne mais tout le code n'est pas encore terminé, seulement sur papier/dans mon esprit. Mais ça ressemble à un code un peu moche ... beaucoup de faire de petites choses. Mais je vais poursuivre en justice jusqu'à la fin et si elle semble toujours inefficace et moche, je vais chercher d'autres solutions.