2011-03-17 52 views
7

我正在为iPhone构建一个应用程序。我扫描iPod库并带入所有专辑封面。我需要一种创建唯一字符串的方法,以便在将专辑封面保存到文档目录时,每个文件都有唯一的名称。有谁知道创建一个独特的字符串?提前致谢。创建一个唯一的字符串用于保存数据

回答

0

我没有代码,但是可以从专辑封面中生成MD5哈希码。这将接近唯一的字符串。这将是一个丑陋的字符串,但。

14

我用这个代码:

+ (NSString *)getUniqueFilenameInFolder:(NSString *)folder forFileExtension:(NSString *)fileExtension { 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSArray *existingFiles = [fileManager contentsOfDirectoryAtPath:folder error:nil]; 
    NSString *uniqueFilename; 

    do { 
     CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault); 
     CFStringRef newUniqueIdString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueId); 

     uniqueFilename = [[folder stringByAppendingPathComponent:(NSString *)newUniqueIdString] stringByAppendingPathExtension:fileExtension]; 

     CFRelease(newUniqueId); 
     CFRelease(newUniqueIdString); 
    } while ([existingFiles containsObject:uniqueFilename]); 

    return uniqueFilename; 
} 

也许它可以帮助别人。 :-)

请记住,这将返回唯一文件的完整路径。您可能需要添加一些小的更改以返回文件名。例如,如果你想坚持它的某个地方。

+0

+1非常有用 – 2012-04-09 04:53:35

相关问题