Обратитесь за помощью, «ошибка: операция GC в незарегистрированном потоке. Поток зарегистрирован неявно». - PullRequest
2 голосов
/ 01 мая 2011

Я нажал эту ошибку "malloc: *** auto malloc [731]: ошибка: операция GC на незарегистрированном потоке. Поток зарегистрирован неявно. Перерыв на auto_zone_thread_registration_error () для отладки."

Мое приложение работает подобнопри этом, когда пользователи дважды щелкают строку в NSTableView, он получает URL-адрес из этой строки, а затем просит WebView загрузить страницу с этого URL-адреса:

[tableView setDoubleAction:@selector(doubleClickAction:)]; 
...

- (IBAction)doubleClickAction:(id)sender { 
   ...
   /* cause that malloc error */
   [[webView mainFrame] loadRequest: [NSURLRequest requestWithURL: row.url]];   
} 

Так как мне это исправить?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 02 мая 2011

Итак, я получил ответ от https://bugs.webkit.org/show_bug.cgi?id=59938, "Это было исправлено еще в r81825. Это безобидное сообщение, которое можно игнорировать."

1 голос
/ 14 мая 2012

Добавьте это objc_registerThreadWithCollector(); в ваш pthread. Если вы не можете найти символ или ошибку связи, используйте следующий код,

 #include <dlfcn.h>
    void (*registerThreadWithCollector_fn)(void);
    registerThreadWithCollector_fn = (void(*)(void)) dlsym(RTLD_NEXT, "objc_registerThreadWithCollector");
    if (registerThreadWithCollector_fn) {
        (*registerThreadWithCollector_fn)();
    } else {
        // do something else
    }
...