Tableau de NSStrings de noms de fichiers dans un dossier?
-
25-09-2019 - |
Question
Je suis en train de créer un tableau de NSStrings du contenu d'un dossier que je l'ai traîné dans mon projet ... mais quand je compte les éléments du tableau par la suite, il est revient toujours avec 0;
Alors, mon dossier dans mon projet ressemble à ceci
-Cards
-Colors
Blue.png
Green.png
Orange.png
Yellow.png
Purple.png
Black.png
Et mon code qui tente d'obtenir la liste des fichiers (les PNGs de couleur) est
NSError *error = nil;
NSString *pathString = [[NSString alloc] init];
pathString = [[NSString alloc] initWithString:@"/Cards/Colors/"];
NSArray *fileList = [[NSArray alloc] init];
fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathString error: &error];
[pathString release];
NSLog(@"%@", error);
// this is always 0
NSLog(@"file list has %i items", [fileList count]);
Le NSError que je reçois est
Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)" UserInfo=0x596db00 {NSUserStringVariant=(
Folder
), NSFilePath=/Cards/Color/, NSUnderlyingError=0x5925ef0 "The operation couldn’t be completed. No such file or directory"}
Les ideads où je me trompe?
La solution
Vous êtes à la pathString
d'initialisation /Cards/Colors/
de chemin absolu. Ce chemin est un chemin de système, de sorte sur l'iPhone, loin à l'extérieur du bac à sable de votre application.
Essayez ceci:
NSString *pathString = [[NSBundle mainBundle] pathForResource:@"Cards/Colors" ofType:nil];
NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathString error: &error];
(Notez que la façon dont vous avez votre code dans la question, vous fileList
alloc / init, puis immédiatement l'objet de fuite en lui affectant les résultats de contentsOfDirectoryAtPath:error:
. Ceci est un bug.)