如何在数组中存储录制的文件?

时间:2010-11-18 13:18:19

标签: iphone objective-c cocoa-touch

这是我用字符串保存音频文件的代码。之后,我添加数组。但仍然没有在这里工作.. 在存储documentdictionary之后,这里是否存在将音频文件存储在数组中的选项。

    fileArray = [[NSMutableArray alloc] initWithContentsOfURL:recordedTmpFile];

    fileArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [fileArray objectAtIndex:0];

    NSMutableDictionary *recordDictionary = [NSDictionary dictionaryWithContentsOfFile:documentsDirectory];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    for(int i= 0; i<fileArray.count;i++)
    {
        NSString *recorded = [fileArray objectAtIndex:i];
        NSString *filePath = [recordDictionary stringByAppendingPathComponent:recorded];
        newArray = [fileManager fileExistsAtPath:filePath];
    }   

如果我遗漏的任何代码比建议我一些具体的想法。 Plz给出了一些回应..

1 个答案:

答案 0 :(得分:10)

我不想听起来像鸡巴,但只是在编辑器上抛出代码是行不通的。我不经常写这样的答案,但有时候需要这样做;

以下是您所写内容的逐行细分,也许这会让您了解此代码段的作用:

  1. 您创建了一个名为fileArray的NSMutableArray,它使用文件内容进行初始化。我不知道这个文件是否格式正确。 documentation
  2. 然后使用搜索路径数组覆盖此数组。顺便说一下,你现在已经泄露了初始数组的内存。
  3. 您会在Documents目录中找到一个字符串。
  4. 您尝试从字符串而不是消息所需的特定格式创建NSDictionary。由于这是无效文件recordDictionary,因此nil documentation
  5. 您创建了对FileManager的引用
  6. 您启动for循环以迭代fileArray
  7. 的内容
  8. 你得到fileArray中的每一项,但这只是一个目录列表,而不是文件(见第2点)
  9. 您尝试通过将您认为的文件附加到目录来创建文件路径,除非您将目录(参见第7点)附加到nil(参见第4点)
  10. 您声明了一个未扩展的变量并尝试为其BOOL分配{{1}}
  11. 所以你写了很多没有做任何事情的代码。它不起作用,因为我怀疑你是否试图编译它。

    看看你的问题历史,你似乎一遍又一遍地问同样的问题。你最好先从对Cocoa的基本介绍开始,直到你理解为什么你的代码片段是错误的。

    您需要做的就是获取要保存的文件的位置,并将其移动到正确的位置。别人可能只是为你编写你的代码,但我不会 - 我不是那么绝望的分数,我只是在做你的伤害。回到基础,提出具体想法的具体问题documentation,你会得到更好的回应