虽然do-while语句的一部分跳过了

时间:2014-03-31 01:26:16

标签: ios objective-c do-while

我正在处理语音备忘录应用,并且我将文件保存到表格视图中。我想要读取默认文件名"新文件1,"如果"新文件1"被采取,然后它将读取"新文件2"等等。

我试图使用do-while循环来实现这一点,但是当我逐步执行代码时它正在跳过while语句。这就是我所拥有的:

int x = 1;
NSString *firstName = [NSString stringWithFormat:@"New File %d", x];

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsPath = [searchPaths objectAtIndex: 0];
NSString *testPath =[NSString stringWithFormat: @"%@/%@", documentsPath, firstName];


do
{x++;
    firstName =[NSString stringWithFormat:@"New File %d", x];
    searchPaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
    documentsPath = [searchPaths objectAtIndex: 0];
    testPath =[NSString stringWithFormat: @"%@/%@", documentsPath, firstName];
}
while ([[NSFileManager defaultManager] fileExistsAtPath:testPath]);

如果我用(x <10)之类的东西替换while部分,那么xcode会读取while语句,然后文件名自然会变成New File 10.但是否则会跳过while语句。

关于这可能是什么的任何想法?

由于

编辑:

它没有跳过。我误解了踩到公式。我添加了一个@&#34; .mp4&#34;在我的文件名末尾,我没有添加到testPath。现在我添加了.mp4,它运行得很好。感谢您的简化和考虑。

1 个答案:

答案 0 :(得分:2)

你可以简化这一点,但这对我有用:

int x = 0;
NSArray  *searchPaths   = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [searchPaths objectAtIndex: 0];
NSString *testPath;

do
{
    x++;
    testPath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"New File %d", x]];
}
while ([[NSFileManager defaultManager] fileExistsAtPath:testPath]);