سؤال

لقد حصلت على هذه المشكلة السلكية ، لا يمكنني الحصول على المحتوى من الملف والبدء في NSMutableArray معها.

هذا هو الكود الخاص بي:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSLog(@"Does file exist?: %i", [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]]);

NSMutableArray *tempArr;

tempArr = [[NSMutableArray alloc] initWithContentsOfFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]];

عند تجربة ذلك ، يعود itwithontentsoffile (NULL). يتحقق الصف إذا كان الملف موجودًا يطبع "1" إلى وحدة التحكم.

هذا هو الرمز الذي أستخدمه لحفظ البيانات:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[length.text writeToFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory] atomically:NO];

أنا أستخدم أكثر أو أقل من نفس الرمز في برنامج مختلف دون مشاكل.

حقا بحاجة إلى بعض المساعدة هنا ، ربما أنا فقط أعمى في الوقت الحالي ...

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

المحلول

مستندات NSARRAY'S initWithContentsOfFile: الطريقة تقول:

قيمة الإرجاع صفيف تم تهيئته لاحتواء محتويات الملف المحدد بواسطة Apath أو NIL إذا كان لا يمكن فتح الملف أو لا يمكن تحليل محتويات الملف إلى صفيف. قد يكون الكائن الذي تم إرجاعه مختلفًا عن المتلقي الأصلي.

لا تتضمن إعلان length في مقتطف الرمز الخاص بك ، لكنني أظن ذلك length.text إرجاع كائن NSString ، وليس nsarray. لذلك ستحتاج إلى قراءة ذلك مرة أخرى من ملف باستخدام initWithContentsOfFile: من NSString ، وليس nsarray.

نصائح أخرى

عندما تحاول إنشاء صفيف من محتويات ملف ، الملف يجب يكون في شكل plist, ، وعنصر السليفي الخارجي يجب أن يكون <array>. إذا لم يكن له هذا التنسيق ، فسوف تفشل التهيئة وستكون صفيفك nil.

أنت تقوم بإنشاء الملف عن طريق كتابة NSString إلى ملف ، مما يعني أنك ربما يجب أن تقرأه في NSString, ، ليس NSArray.

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