Я успешно сохранил свой лист в каталоге документов! Теперь я не могу загрузить его обратно - PullRequest
0 голосов
/ 27 ноября 2010

Этот код прекрасно работает для сохранения моего списка в каталоге документов.

- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = self.addButtonItem;
NSString *path = [[NSBundle mainBundle] pathForResource:@"TitleArray" ofType:@"plist"];
NSMutableArray *tmpArray = [[NSMutableArray alloc]initWithContentsOfFile:path];
self.titles = tmpArray;
[tmpArray release];

//TESTING NEW CODE FOR SAVING TO DOC DIR
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *docDirPath = [documentsDirectory stringByAppendingPathComponent:@"TitleArray.plist"];

NSFileManager *fileManager = [NSFileManager defaultManager];

if(![fileManager fileExistsAtPath: docDirPath])
{
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"TitleArray" ofType:@"plist"];

    [fileManager copyItemAtPath:bundle toPath:docDirPath error:&error];

                        NSLog(@"plist is copied to Directory");
                        }

Я не смог выяснить, как загрузить список обратно в приложение!

Можеткто-нибудь поможет?Спасибо.

Ответы [ 3 ]

4 голосов
/ 27 ноября 2010
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"TitleArray.plist"];
NSArray * myList = [NSArray arrayWithContentsOfFile:path];
NSMutableArray *tmpArray = [myList mutableCopy];
self.titles = tmpArray;
[tmpArray release];

не работает?

0 голосов
/ 15 июля 2015
NSError *error; NSArray *paths =    
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,    NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths    objectAtIndex:0];
NSString *docDirPath = [documentsDirectory    stringByAppendingPathComponent:@"TitleArray.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath: docDirPath])  
{    
    docDirPath = [[NSBundle mainBundle] pathForResource:@"TitleArray" ofType:@"plist"];
}  
NSMutableArray *tmpArray = [[[NSMutableArray    alloc] initWithContentsOfFile: docDirPath] mutableCopy];
0 голосов
/ 27 ноября 2010

Если вы спрашиваете, как переписать plist, включенный в основной пакет вашего приложения, то вы должны знать, что это невозможно сделать.Посмотрите на этот вопрос для более подробной информации: Можете ли вы обновить файл в комплекте приложений?

...