В моем проекте есть контроллер вида, в котором мне нужно щелкнуть два изображения и показать их в уменьшенном виде на одном экране. Этот процесс можно повторить после загрузки обоих изображений на сервер. Для съемки я использую UIImagePickerController. После 8-кратного нажатия на изображение я получаю предупреждение памяти 1 и 2 уровня.
Когда я ссылался на связанные вопросы в StackOverflow, большинство из них предлагали сделать UIImagePickerController как объект Singleton. Поэтому я создал новый класс Singleton, который является подклассом UIImagePickerController. В моем главном контроллере представления сейчас я создаю объект этого пользовательского класса и использую его повторно. Но, к сожалению, это тоже не помогает. После 8 щелчков изображения я все еще получаю предупреждение о памяти.
Отправка некоторых фрагментов также -
Создание подкласса UIImagePickerController -
@interface ImagePickerControllerSingelton : UIImagePickerController <UIImagePickerControllerDelegate>
{
}
+(ImagePickerControllerSingelton *) sharedPicker;
Реализация синглтон-класса -
static ImagePickerControllerSingelton *sharedInstance = nil;
+(ImagePickerControllerSingelton*) sharedPicker
{
@synchronized (self){
if (sharedInstance == nil) {
[[self alloc] init];
return sharedInstance;
}
}
return sharedInstance;
}
+ (id)allocWithZone:(NSZone *)zone
{
@synchronized(self) {
if (sharedInstance == nil) {
sharedInstance = [super allocWithZone:zone];
return sharedInstance; // assignment and return on first allocation
}
}
return nil; //on subsequent allocation attempts return nil
}
Теперь в основном классе View Controller -
ImagePickerControllerSingelton *imagePicker;
imagePicker = [ImagePickerControllerSingelton sharedPicker];
// Set source to the camera
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
// Delegate is self
imagePicker.delegate = self;
// Allow editing of image?
imagePicker.allowsEditing = YES;
imagePicker.showsCameraControls = NO;
imagePicker.wantsFullScreenLayout = YES;
imagePicker.cameraOverlayView = [self createOverlayView];
[self presentModalViewController:imagePicker animated:YES];
Я что-то не так делаю? Ребята помогите пожалуйста!