开发者

I have successfully saved my plist to the documents directory! Now I can't load it back

开发者 https://www.devze.com 2023-01-27 08:05 出处:网络
This code works beautifully to save my plist to the documents directory. - (void)viewDidLoad { [super viewDidLoad];

This code works beautifully to save my plist to the documents directory.

- (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(N开发者_如何学CSDocumentDirectory, 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");
                        }

I have not been able to figure out how to load the plist back to the app!

Can anyone help? Thanks.


NSString *path = [documentsDirectory stringByAppendingPathComponent:@"TitleArray.plist"];
NSArray * myList = [NSArray arrayWithContentsOfFile:path];
NSMutableArray *tmpArray = [myList mutableCopy];
self.titles = tmpArray;
[tmpArray release];

didn't work?


If you are asking how to overwrite a plist included in your app's main bundle, then you should know that it cannot be done. Take a look at this question for more details: Can you update a file in the application bundle?


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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号