سؤال

أحاول إنشاء مجموعة من NSStrings لمحتويات المجلد الذي قمت بسحبه إلى مشروعي ... لكن عندما أحسب العناصر الموجودة في المصفوفة بعد ذلك ، فإنها تعود دائمًا مع 0 ؛

لذا ، يبدو مجلدتي في مشروعي هكذا

-Cards
  -Colors
     Blue.png
     Green.png
     Orange.png
     Yellow.png
     Purple.png
     Black.png

والرمز الخاص بي الذي يحاول الحصول على قائمة الملفات هذه (Color PNGs)

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]);

nserror الذي أحصل عليه

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"}

أي كحبة أين أخطأ؟

هل كانت مفيدة؟

المحلول

أنت تهيئة pathString إلى المسار المطلق /Cards/Colors/. هذا المسار هو مسار على مستوى النظام ، لذلك على iPhone ، خارج صندوق الرمل الخاص بالتطبيق.

جرب هذا بدلاً من ذلك:

NSString *pathString = [[NSBundle mainBundle] pathForResource:@"Cards/Colors" ofType:nil];
NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathString error: &error];

(لاحظ أن الطريقة التي لديك رمزك في السؤال ، يمكنك تخصيص/init fileList, ، ثم تسرب على الفور الكائن عن طريق تعيين نتائج contentsOfDirectoryAtPath:error:. هذا خطأ.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top