Сохраните Образ на времени простоя iPhone

Я хочу сохранить загруженный образ с сервера во время простоя. Я использую следующее для сохранить образ в памяти 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 неактивен..... может помочь??

Спасибо

1
задан Rony 25 July 2010 в 05:45
поделиться

1 ответ

Вам нужно сделать это в фоновом режиме, используя поток.

Если вы поддерживаете только 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: .

2
ответ дан 2 September 2019 в 22:47
поделиться