应用程序启动时如何从文档目录中检索数据?

时间:2013-01-04 11:01:50

标签: iphone ios nsdocumentdirectory

我创建了录制声音并在tableview中显示声音文件的应用程序。在该应用程序中,当录制声音时,filepath将存储在一个数组中,我使用哪个数组来填充我的tableview。但我的问题是,当我关闭应用程序时,我的数组将是空的,我丢失了我的录制文件。

所以现在,当我第二次打开我的应用程序时,如何获取录制的文件。我将声音文件存储在文档目录中。

1 个答案:

答案 0 :(得分:1)

将数组存储在NSUserDefaults中。在NSUserDefaults中重新存储并存储数组..请参阅NSUserDefaults

的示例

AppDelegate.h文件中只声明变量...

    NSUserDefaults  *userDefaults;
    NSMutableArray *yourArray;
    after...

AppDelegate.m方法中的applicationDidFinishLonching: Fille

    userDefaults = [NSUserDefaults standardUserDefaults];
    NSData *dataRepresentingtblArrayForSearch = [userDefaults objectForKey:@"yourArray"];
    if (dataRepresentingtblArrayForSearch != nil) {
        NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingtblArrayForSearch];
        if (oldSavedArray != nil)
            yourArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
        else
            yourArray = [[NSMutableArray alloc] init];
    } else {
        yourArray = [[NSMutableArray alloc] init];
    }
    [yourArray retain];

之后,当您要在此UserDefaults使用Bellow Code ...

中插入数据时
    [appDelegate.yourArray addObject:yourDataString];///set your value or anything which you want to store here...
    NSData *data=[NSKeyedArchiver archivedDataWithRootObject:appDelegate.yourArray];
    [appDelegate.userDefaults setObject:data forKey:@"yourArray"];
    [appDelegate.userDefaults synchronize];

我希望这可以帮助你...