Qt 4.5 dan foydalanganda ilovam oqishidan qanday tuzataman?

Qt 4.5 ga qarshi qurishdan tashqari kodimga hech qanday o'zgartirish kiritmasdan, ilovamni ishga tushirganimda quyidagi ogohlantirish xabarini olaman:

*** _NSAutoreleaseNoPool(): Object 0x50a1b0 of class NSCFNumber autoreleased with
no pool in place - just leaking

Men kodimda hech qanday Objective-C dan foydalanmayapman, lekin Qt 4.5 Carbon o'rniga yangi kakao asosidagi orqa uchidan foydalanmoqda.

Ushbu xato xabarini qanday hal qilish va tuzatishni bilmayman. Hech kimda ma'lumot bormi?


person Scotts    schedule 14.05.2009    source manba
comment
Oqish xato xabarining sababi nima ekanligini bilib oldim. Menda Fantasktik deb nomlangan dastur o'rnatilgan va ishlayotgan edi. Ushbu dastur barcha ishlaydigan dasturlarga o'zini bog'laydi. O'ylaymanki, Fantasktik-dan ba'zi kodlar Qt NSAutoreleasePool-ni o'rnatmasdan oldin ishga tushdi.   -  person Scotts    schedule 18.08.2009


Javoblar (1)


Umuman olganda, kodingizda bu muammoni ko'rganingizda, siz qoidabuzar kod blokini oldin NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; va keyin [pool release]; bilan qavs qilasiz. Siz _NSAutoreleaseNoPool funktsiyasida to'xtash nuqtasini o'rnatishingiz mumkin va buzg'unchi kod nima ekanligini ko'rish uchun stekni skanerlashni qidiring. Shuni yodda tutingki, -autorelease Kakaoda hamma joyda qo'llaniladi, shuning uchun Qt kodida avtoreliz uchun maxsus qo'ng'iroq bo'lmasligi mumkin, bu uni ishga tushiradi.

Biroq, bu Qt ning kodi bo'lgani uchun va oxirgi marta tekshirib ko'rdim, Qt/Kakao hali ham davom etayotgan ish bo'lganligi sababli, siz xatolik va stekni skanerlash bilan xato hisobotini yuborishingiz va kutishingiz kerak. ularni tuzatish uchun.

person Boaz Stuller    schedule 14.05.2009
comment
Men buni [pool drain] deb o'yladim. - person Raffi Khatchadourian; 24.03.2012