Я хочу сохранить загруженный образ с сервера во время простоя. Я использую следующее для сохранить образ в памяти iPhone.
- (void)saveImage:(UIImage *)image withName:(NSString *)name
{
NSData *data1 = UIImageJPEGRepresentation(image, 1.0);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:name];
[fileManager createFileAtPath:fullPath contents:data1 attributes:nil];
if (image==nil) {
NSLog(@"Not Saved...:%@",name);
}
}
но когда его метод звонил, я получил время останова.... я не хочу это... я хочу сохранить образ, когда iPhone неактивен..... может помочь??
Спасибо
Вам нужно сделать это в фоновом режиме, используя поток.
Если вы поддерживаете только iOS 4.0, это действительно просто:
- (void)saveImage:(UIImage *)image withName:(NSString *)name {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL), ^{
NSData *data1 = UIImageJPEGRepresentation(image, 1.0);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:name];
[fileManager createFileAtPath:fullPath contents:data1 attributes:nil];
if (image==nil) {
NSLog(@"Not Saved...:%@",name);
}
});
}
В противном случае посмотрите документацию NSThread
или performSelectorInBackground: withObject:
.