2011-03-17 12 views
7

Estoy creando una aplicación para el iphone. Escalo la biblioteca del iPod y traigo toda la portada del álbum. Necesito una forma de crear una cadena única para que cuando guarde la portada del álbum en el directorio de documentos, cada archivo tenga un nombre único. ¿Alguien sabe crear una cadena única? Gracias por adelantado.Crear una cadena única utilizada para guardar datos

Respuesta

0

No tengo el código, pero podría generar un código de hash MD5 fuera de la carátula del álbum. Eso sería cerca de una cadena única. Sin embargo, sería una cadena fea.

14

utilizo este código:

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

Tal vez ayude a alguien. :-)

Tenga en cuenta que esto devuelve la ruta completa del archivo único. Es posible que desee agregar algunos pequeños cambios para simplemente devolver el nombre del archivo. Por ejemplo, si quieres persistir en alguna parte.

+0

+1 Extremadamente útil –

Cuestiones relacionadas