Чтобы получить ответ на 1-й вопрос, просмотрите следующий фрагмент кода:
#import <MobileCoreServices/MobileCoreServices.h>
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
BOOL isImage = ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:kUTTypeImage]);
if (isImage) {
self.request = [ASIFormDataRequest requestWithURL:url];
UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *imageData = UIImageJPEGRepresentation(originalImage, 0.7);
[self.request setData:imageData
withFileName:@"photo.jpg"
andContentType:@"image/jpeg"
forKey:@"photo"];
[self.request start];
}
}
Пожалуйста, рассмотрите возможность добавления свойства в ваш класс делегатов UIImagePiclerController
@property(nonatomic, retain) ASIFormDataRequest *request;
Это позволит вам остановить запрос или, по крайней мере, установить его делегат равным nil, если ваш объект освобожден, просто реализовав
- (void) dealloc {
[self.request cancel];
self.request.delegate = nil;
[request release];
[super dealloc];
}