purgeMemoryForReason для управления камерой UIImagePickerViewController - PullRequest
1 голос
/ 12 мая 2011

Я разрабатываю небольшое приложение с пользовательским управлением камерой.

Хорошо работает со всеми функциями без утечки памяти

Но когда я пытаюсь получить доступ к камере более 8-9 раз, происходит сбой приложения ...

Я проверил с помощью инструмента Performance, но там нет утечки памяти ,,, также всего Live Bites составляет только 4,96 МБ

Я получаю следующую ошибку ...



Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x35443a1c __pthread_kill + 8
1   libsystem_c.dylib               0x320e93b4 pthread_kill + 52
2   libsystem_c.dylib               0x320e1bf8 abort + 72
3   libstdc++.6.dylib               0x31d5ca64 __gnu_cxx::__verbose_terminate_handler() + 376
4   libobjc.A.dylib                 0x3011006c _objc_terminate + 104
5   libstdc++.6.dylib               0x31d5ae36 __cxxabiv1::__terminate(void (*)()) + 46
6   libstdc++.6.dylib               0x31d5ae8a std::terminate() + 10
7   libstdc++.6.dylib               0x31d5af5a __cxa_throw + 78
8   libobjc.A.dylib                 0x3010ec84 objc_exception_throw + 64
9   CoreFoundation                  0x3170e1b8 -[NSObject(NSObject) doesNotRecognizeSelector:] + 96
10  CoreFoundation                  0x3170d642 ___forwarding___ + 502
11  CoreFoundation                  0x31684178 _CF_forwarding_prep_0 + 40
12  UIKit                           0x32a37118 -[UIViewController purgeMemoryForReason:] + 20
13  UIKit                           0x32a37146 -[UIViewController didReceiveMemoryWarning] + 10
14  UIKit                           0x32a3715c -[UIViewController _didReceiveMemoryWarning:] + 8
15  Foundation                      0x3632117c _nsnote_callback + 136
16  CoreFoundation                  0x316d9208 __CFXNotificationPost_old + 396
17  CoreFoundation                  0x31673ee4 _CFXNotificationPostNotification + 112
18  Foundation                      0x3631e5cc -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
19  Foundation                      0x363201ba -[NSNotificationCenter postNotificationName:object:] + 18
20  UIKit                           0x32a0d35a -[UIApplication _performMemoryWarning] + 42
21  UIKit                           0x32a0dd7c -[UIApplication _receivedMemoryNotification] + 120
22  UIKit                           0x32a0b500 _memoryStatusChanged + 36
23  CoreFoundation                  0x316d9d62 __CFNotificationCenterDarwinCallBack + 18
24  CoreFoundation                  0x316d6bd8 __CFMachPortPerform + 204
25  CoreFoundation                  0x316e1a90 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
26  CoreFoundation                  0x316e3838 __CFRunLoopDoSource1 + 160
27  CoreFoundation                  0x316e4606 __CFRunLoopRun + 514
28  CoreFoundation                  0x31674ebc CFRunLoopRunSpecific + 224
29  CoreFoundation                  0x31674dc4 CFRunLoopRunInMode + 52
30  GraphicsServices                0x36497418 GSEventRunModal + 108
31  GraphicsServices                0x364974c4 GSEventRun + 56
32  UIKit                           0x328e2d62 -[UIApplication _run] + 398
33  UIKit                           0x328e0800 UIApplicationMain + 664
34  Imagepicker                 0x000020ec main (main.m:14)
35  Imagepicker                 0x000020a0 start + 32




Живые укусы меньше 5 МБ, но я получаю этот сбой ... Для 3G и 3G стало более проводным ... Для них это так круто ... и чаще ...

Любая помощь ?????

1 Ответ

0 голосов
/ 14 мая 2011

У меня похожая проблема с приложением камеры, которое я создал.Я получаю много предупреждений о нехватке памяти.Вы смотрите их?

В качестве временной меры, пока я определяю проблему, которую я поставил, примерно так:

- (void)didReceiveMemoryWarning {
    NSLog(@"memory problem!!!!!!!!!!");
    NSString *errorString = [NSString stringWithFormat:@"There isn't enough memory to run this app right now.  You should quit some apps and try again."];
    UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Low Memory Warning" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [errorAlert show];
    [errorAlert release];    
    [super didReceiveMemoryWarning];
}
...