1

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

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

4

1 回答 1

1

将数组存储在NSUserDefaults. 检索并将数组存储在NSUserDefaults .. 中查看示例NSUserDefaults

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

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

AppDelegate.m填入applicationDidFinishLonching:法_

    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使用波纹管代码中插入数据时...

    [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];

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

于 2013-01-04T11:03:40.283 回答