2016-09-08 1 views
0

Dans tout scénario peut avoir plusieurs chemins app dans NSArray lors de l'accès NSDocumentDirectory en utilisant le code suivant:peut avoir plusieurs chemins app pour NSDocumentDirectory

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 

Je suis juste curieux de savoir thing..can vous partagez tous avec moi votre expérience ?

+0

ne vous obtenez pas question correctement !!! – Lion

+0

@KetanParmar: en ce moment lorsque vous utilisez le code ci-dessus, vous obtiendrez un chemin dans NSArray..mon question est-ce que vous avez un scénario lorsque le résultat ci-dessus renvoient plusieurs chemins dans NSArray? –

Répondre

0

Non, cela retournera toujours un chemin pour documentDirectory !!

Il peut varier selon différents types de répertoire comme,

NSString *path = NSTemporaryDirectory(); 

ligne ci-dessus donnera le chemin du répertoire temporaire.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); 

ci-dessus ont également ensemble un chemin, mais c'est le chemin de NSDocumentationDirectory.

NSSearchPathForDirectoriesInDomains Crée une liste de chaînes de chemins pour les répertoires spécifiés dans les domaines spécifiés. La liste est dans l'ordre dans lequel vous devriez rechercher les répertoires.

Vous pouvez obtenir le contenu ou le répertoire sous du répertoire de documents ou tout autre répertoire comme,

NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES); 

NSArray *contentOfDocDirectory = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:pathArr[0] error:nil]; 

NSLog(@"content of document directory : %@",contentOfDocDirectory); 
1

strictement parlé, vous pouvez obtenir plusieurs chemins parce que vous pouvez passer plusieurs domaines.

Si vous passez un seul domaine vous obtenez un tableau contenant un chemin unique.

Toutefois, Apple recommande de ne plus utiliser cette fonction.

De la documentation:

Vous devriez envisager d'utiliser les méthodes NSFileManagerURLsForDirectory:inDomains: et URLForDirectory:inDomain:appropriateForURL:create:error: qui renvoient les URL, qui sont le format préféré.

+0

Pouvez-vous me guider en profondeur pourquoi ne pas utiliser la méthode NSSearchPathForDiriesInDomains? –

+0

Il s'agit d'une recommandation générale d'Apple de préférer l'URL liée à l'API liée au chemin et d'utiliser des méthodes de classes Cocoa plutôt que des fonctions C de base. – vadian

+0

https://developer.apple.com/library/ios/technotes/tn2285/_index.html# .. vous obtiendrez plus clair que nous pouvons utiliser les deux méthodes .. juste pour votre information. –