Вы можете сохранить изображение в фотоальбоме с этим кодом
UIImageWriteToSavedPhotosAlbum(yourImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
if (error != NULL)
{
// handle error
}
else
{
// handle ok status
}
}
Теперь для выполнения кода в другом потоке я бы написал такой код
// load data in new thread
[NSThread detachNewThreadSelector:@selector(downloadImage) toTarget:self withObject:nil];
Этот метод вы можете использовать где угоднов вашем коде, кнопке или любом другом элементе управления UIKit.Тогда вам понадобятся методы, которые будут выполнять тяжелую работу.
- (void)downloadImage
{
// network animation on
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
// create autorelease pool
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// save image from the web
UIImageWriteToSavedPhotosAlbum([UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"your_image_address.com"]]], self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
[self performSelectorOnMainThread:@selector(imageDownloaded) withObject:nil waitUntilDone:NO ];
[pool drain];
}
- (void)imageDownloaded
{
// network animation off
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
// do whatever you need to do after
}