2015-05-14 7 views
6

Я пишу довольно простое приложение ObjC. (Только незначительная сложность в том, что он использует внешнюю библиотеку под названием Чилкэт для некоторых базовых сетей, но я не думаю, что это отношение.)Xcode: предупреждение о «ложном обновлении»?

Иногда мой проект спонтанно появляется следующее предупреждение:

14 мая 01:24:01 Neovenator-2.local Project [22645]: void CGSUpdateManager :: log() const: conn 0x4b29b: ложное обновление.

И я не знаю, как обрабатывать или даже интерпретировать его. В моем проекте под названием CGSUpdateManager нет ничего, и мой проект не вызывает функцию log() в любом месте. Я не могу даже надежно воспроизвести его, но он появился достаточно часто, чтобы повысить уровень моего интереса.

Поиски в Google и здесь для термина «ложное обновление» показывают слегка разбросанный набор разговоров, но ничего не имеют отношения к моему проекту. Тем временем, поиск Google для «CGSUpdateManager» показывает, что это связано с Swift, который я вообще не использую.

Может ли кто-нибудь помочь мне понять, что это значит? Или я просто не обращал на это внимания?

ответ

0

Убедитесь, что вы вызываете super in viewDidLoad, viewWillAppear и viewWillDisappear.

+1

Я даже не зацепить какой-либо из этих функций, так [super] должен быть изначально вызван для всех из них. Единственными функциями, которые я использую, являются applicationDidFinishLaunching и applicationWillTerminate - ни один из которых не имеет [супер] эквивалент, который я могу назвать (да, я попробовал). –

+0

Я тоже это вижу. У меня нет методов 'viewWillAppear' или' viewWillDisappear'. Все мои методы 'viewDidLoad' вызывают' super viewDidLoad '; 'перед тем, как делать что-либо еще. – mah

+0

я имел предупреждение, и я нашел (без комментариев): '- (Недействительными) setNeedsDisplay { // # если 1 // TEST (предположим, что мы только мы называем) если (wvImageRep_DoRebuild) // # endif [супер комплектNeedsDisplay]; // «ложное обновление»? } ' После того, как я прокомментирую две строки, больше никаких предупреждений. Но восстановить их не обязательно, чтобы предупреждение появилось ... Я думаю, отследите каждый код, который понадобится 'super' ... – tontonCD

0

К сожалению, мой код с правильным Highlight/отступом:

- (void)setNeedsDisplay 
{ 
//#if 1 //TEST (suppose we are only called by us) 
    if(wvImageRep_DoRebuild) 
//#endif 
     [super setNeedsDisplay]; // "spurious update" ? 
} 

Это пример (@see моего полного ответа), это помогло мне

Смежные вопросы