添加到收藏夹功能iPhone

|| 我正在尝试在我的应用程序上使用“添加到收藏夹”功能。我似乎无法正常工作。基本上,每次我的手机重新启动时,所有收藏夹都会从数组和字典中删除。无论如何,有没有保存此数据的信息,以便每次启动应用程序时都可以保存和还原这些数据?非常感谢。 以下是一些代码:在appDidFinishLaunching中:
//============== Add To Favourites ==============

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@\"Saved.data\"];


NSArray *pathsArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryArray = [pathsArray objectAtIndex:0];
NSString *filePathArray = [documentsDirectoryArray stringByAppendingPathComponent:@\"savedArray.data\"];

delegateFavouritesDictionary = [NSMutableDictionary dictionary];
[delegateFavouritesDictionary writeToFile:filePath atomically:YES];

    delegateFavouritesArray = [[NSMutableArray alloc]init];
在detailViewController viewDidLoad中:
self.addToFavouritesArray = [[NSMutableArray alloc] init];
self.addToFavouritesDictionary = [NSMutableDictionary dictionary];
TabBar_NavigationBasedAppDelegate *mainDelegate = (TabBar_NavigationBasedAppDelegate *)[[UIApplication sharedApplication]delegate];
//addToFavouritesArray = [[NSMutableArray alloc] init];
NSMutableArray *tempArray1 = mainDelegate.delegateFavouritesArray;
//NSMutableDictionary *tempDictionary1 = mainDelegate.delegateFavouritesDictionary;
addToFavouritesArray = tempArray1;

//self.addToFavouritesDictionary = tempDictionary1;


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@\"Saved.data\"];
addToFavouritesDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
在detailViewController中,在addToFavourites函数中:
NSString *ID = [[NSUserDefaults standardUserDefaults]objectForKey:@\"ID\"];

    if([[addToFavouritesDictionary allKeys] containsObject:ID]) {

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@\"Saved.data\"];



        [addToFavouritesDictionary removeObjectForKey:ID];
        [addToFavouritesArray removeObject:Name];
        [favouritesButton setTitle:@\"+ Favourites\" forState:(UIControlState)UIControlStateNormal];
        [addToFavouritesDictionary writeToFile:filePath atomically: YES];
        NSLog(@\"New Dictionary: %@\", addToFavouritesDictionary);

    } else {

        [addToFavouritesArray addObject:Name];
        NSString *ID = [[NSUserDefaults standardUserDefaults]objectForKey:@\"ID\"];
        [addToFavouritesDictionary setObject:Name forKey:ID];
        [favouritesButton setTitle:@\"- Favourites\" forState:(UIControlState)UIControlStateNormal];

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@\"Saved.data\"];

        [addToFavouritesDictionary writeToFile:filePath atomically: YES];
        NSLog(@\"Mutable Dictionary: %@\", addToFavouritesDictionary);
        //[addToFavouritesDictionary release];

    }
在FavouritesViewController中的viewDidLoad中:
TabBar_NavigationBasedAppDelegate *mainDelegate = (TabBar_NavigationBasedAppDelegate *)[[UIApplication sharedApplication]delegate];


favouritesArray = [[NSMutableArray alloc] init];

NSMutableArray *tempArray1 = mainDelegate.delegateFavouritesArray;
favouritesArray = tempArray1;

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@\"Saved.data\"];


favouritesDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
非常感谢您的帮助     
已邀请:
在您的applicationDidFinishLaunching:方法中(因此,每次您的应用启动时),您首先要创建一个空的NSMutableDictionary,然后将其写入Saved.data,这可能覆盖那里的所有内容。     

要回复问题请先登录注册