Jos*_*el. 9 cocoa-touch objective-c uiimage ios
我正在制作一个小应用程序,用户可以在其中创建游戏配置文件,输入一些数据和可以用相机拍摄的照片.
我借助于保存了大部分配置文件数据NSUserDefaults,但朋友不鼓励我保存配置文件图像NSUserDefault.
在我的应用程序中本地保存和检索图像的正确方法是什么?
Raf*_*fAl 18
你应该将其保存在Documents或Cache文件夹.这是怎么做的.
保存到Documents文件夹:
NSString* path = [NSHomeDirectory() stringByAppendingString:@"/Documents/myImage.png"];
BOOL ok = [[NSFileManager defaultManager] createFileAtPath:path
contents:nil attributes:nil];
if (!ok)
{
NSLog(@"Error creating file %@", path);
}
else
{
NSFileHandle* myFileHandle = [NSFileHandle fileHandleForWritingAtPath:path];
[myFileHandle writeData:UIImagePNGRepresentation(yourImage)];
[myFileHandle closeFile];
}
Run Code Online (Sandbox Code Playgroud)
从Documents文件夹加载:
NSFileHandle* myFileHandle = [NSFileHandle fileHandleForReadingAtPath:path];
UIImage* loadedImage = [UIImage imageWithData:[myFileHandle readDataToEndOfFile]];
Run Code Online (Sandbox Code Playgroud)
您还可以使用UIImageJPEGRepresentation将您保存UIImage为JPEG文件.如果要将其保存在Cache目录中,还可以使用:
[NSHomeDirectory() stringByAppendingString:@"/Library/Caches/"]
Run Code Online (Sandbox Code Playgroud)
一种方法是使用应用程序的文档目录.这特定于应用程序,对其他应用程序不可见.
如何创建:
只需向App Delegate添加静态函数,并使用需要路径的函数.
- (NSString )applicationDocumentDirectory {
/
Returns the path to the application's documents directory.
*/
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
return basePath;
}
希望它帮助..
| 归档时间: |
|
| 查看次数: |
13843 次 |
| 最近记录: |