2011-03-17 9 views
7

아이폰 용 응용 프로그램을 구축 중입니다. iPod 라이브러리를 스캔하여 모든 앨범 아트를 가져옵니다. 앨범 아트를 문서 디렉토리에 저장할 때 각 파일마다 고유 한 이름을 갖도록 고유 한 문자열을 만드는 방법이 필요합니다. 누구든지 고유 한 문자열을 만드는 것을 알고 있습니까? 미리 감사드립니다.데이터 저장에 사용되는 고유 한 문자열 만들기

답변

5

GUID 또는 UUID를 생성하려고합니다.이 문자열은 연관된 문자열이있는 128 비트 정수입니다.

+ (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; 
} 

어쩌면 누군가를하는 데 도움이 :이 코드를 사용 http://developer.apple.com/library/ios/#documentation/CoreFoundation/Reference/CFUUIDRef/Reference/reference.html

0

코드가 없지만 앨범 아트에서 MD5 해시 코드를 생성 할 수 있습니다. 그것은 고유 한 문자열에 가깝습니다. 그것은 비록 추한 문자열 것입니다.

14

확인하십시오. :-)

고유 파일의 전체 경로를 반환한다는 점에 유의하십시오. 파일 이름을 반환하기 위해 몇 가지 작은 변경 사항을 추가 할 수 있습니다. 예를 들어, 어딘가에 그것을 유지하고 싶다면.

+0

+1 매우 유용합니다. –

관련 문제