我正在做一个 iphone 应用程序,因为我必须存储大量 MP3 歌曲和图像。
谁能告诉我在性能方面最好的存储方式。
将图像和歌曲存储在应用程序目录中。这是最好和最容易处理的方法。试试下面的代码。它会帮助你。
//Store Image/Songs files to Application Directory
+(BOOL)writeToFile:(NSData *)data fileName:(NSString *)fileName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// the path to write file
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName];
return [data writeToFile:appFile atomically:YES];
}
//Image/songs - Retrieve from Application Directory
+(NSData *)readFromFile:(NSString *)fileName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:fileName];
NSData *myData = [NSData dataWithContentsOfFile:filePath];
if (myData) {
return myData;
}
return nil;
}
将 MP3 歌曲和图像存储到应用项目的资源文件夹中,并在 sqlite 数据库中提供参考(因为在 sqlite 数据库中保存大文件不是一个好习惯)
我建议您将所有大尺寸的项目存储在设备磁盘上,即 Documents 目录,并将它们的物理路径存储在核心数据或 sqlite 或至少在 plist 文件中,以便您可以根据自己的方便检索它们。