سؤال

لدي ملف plist في مجموعة الموارد الخاصة بي في Xcode. أحاول نسخ هذا إلى دليل المستندات الخاص بي عند إطلاق التطبيق. أنا أستخدم الكود التالي (مأخوذة من برنامج تعليمي SQLite):

BOOL success;
NSError *error;

NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"ActiveFeedsPlist.plist"];

success = [fileManager fileExistsAtPath:filePath];
if (success) return;

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingFormat:@"ActiveFeedsPlist.plist"];
success = [fileManager copyItemAtPath:path toPath:filePath error:&error];

if (!success) {
    NSAssert1(0, @"Failed to copy Plist. Error %@", [error localizedDescription]);
}

لقد أعطيت الخطأ "*** إنهاء التطبيق بسبب الاستثناء غير المطلوب" nsinternalinconsistencyexception "، السبب:" فشل في نسخ plist. لا يمكن إكمال عملية الخطأ. لا يوجد مثل هذا الملف أو الدليل "في وحدة التحكم.

هل لديك فكرة ما الخطب؟

شكرًا

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

المحلول

أنت تفتقد فاصل ملفات:

... stringByAppendingString:@"/ActiveFeedsPlist.plist"];

أو الأفضل استخدام:

... stringByAppendingPathComponent:@"ActiveFeedsPlist.plist"];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top