2010-12-14 32 views
0

j'ai une chaîne de caractères qui ont un type comme celui-cicomment supprimer une sous-chaîne et obtenir une autre partie de cette chaîne

NSString *string1 = @"/Users/mine/Library/Application Support/iPhone Simulator/3.2/Applications/02221798-1B7A-46B4-928F-F5BE37E177B5/Documents/Project/Project 1/Folder 1/2.php"; 

si je veux juste obtenir le « 02221798-1B7A-46B4-928F-F5BE37E177B5 »

i ont en oeuvre un code comme ceci:

NSString *subString1; 
int count = [string1 length]; 
NSLog(@"count : %d", count); 
subString1 = [string1 substringFromIndex:121]; 

mais il reste "02221798-1B7A-46B4-928F-F5BE37E177B5/Documents/projet/projet 1/dossier 1/2.PHP"

comment puis-je faire pour le réparer ??

+1

Vous voudrez rechercher une sorte de "split" méthode, vous divisez alors en fonction de la '/' dans cette chaîne et obtenez un tableau que vous pouvez facilement accéder. – imbaer

Répondre

1

Pour obtenir le nom du répertoire parent de votre application, vous devriez essayer ceci:

NSString *appUUID = [[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent] lastPathComponent]; 

Cela fonctionne à la fois sur un appareil et simulateur.

Si vous avez besoin pour obtenir le chemin complet vers le dossier Documents dans votre bac à sable de l'application:

NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 

Si vous devez ajouter un composant de chemin à une chaîne de chemin:

NSString *projectPath = [documentsPath stringByAppendingPathComponent: @"Project"]; 

S'il vous plaît, jetez un oeil à la documentation NSString, section "Tâches", "Working with Paths". C'est à lire absolument.

+0

pouvez-vous me donner plus d'exemple? –

+0

Le code ci-dessus renvoie le nom du répertoire parent de votre application, quelque chose comme l'UUID de l'application. D'abord, il obtient le chemin d'accès complet au lot d'applications, puis supprime le nom et l'extension de l'application, puis renvoie le dernier composant, qui correspond au nom du répertoire dans lequel se trouve votre application. Voulez-vous demander quelque chose de différent? – Costique

+0

thx pour votre aide ... mais si je veux obtenir le "Projet 1", pouvez-vous me donner une autre aide? –

0

Vous pouvez utiliser la méthode stringWithRange de NSString. subString1 = [chaîne1 chaîneWithRange: NSMakeRange (startPos, yourLengthToSelect)];

ou vous pouvez utiliser componentSeparetedByString et rompre la chaîne en utilisant @ "/". il retournera le tableau de la chaîne. obtenir votre chaîne désirée en utilisant l'index de tableau.

+0

NSString a une méthode spéciale, '-pathComponents', pour obtenir le tableau des composants de chemin. Vous devriez l'utiliser toujours avec les chemins, plutôt qu'avec '-componentsSeparatedByString:', car "/" est considéré comme un détail d'implémentation interne du système de fichiers sous-jacent. – Costique