gnustep nsautoreleasePool عدم التوافق
-
18-09-2019 - |
سؤال
وفق آخر مكدس تجاوز الفضاء ال drain
الرسالة هي استدعاء التفاح فقط:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;
هل هو آمن للاستبدال drain
مع release
ب أحاول ميناء تطبيق موضوعي لتشغيله على Linux (Ubuntu في الوقت الحالي). يجب أن أستسلم حتى قبل أن بدأت؟ (أقصد بالفعل محاولة الحصول عليها NSURLConnection
عمل)
المحلول
من وثائق أبل drain
:
...] هذه الطريقة تتصرف نفس الإصدار. [...
وبالتالي فإن استنزاف تجمع Autorelease يعني تلخيصه حتما. في رأيي، يجب أن تنفس أبل drain
لأنه يخلق فقط الارتباك.
ولكن:
إعتبارات خاصة:
في بيئة جمع القمامة،release
هو عدم المرجع، لذلك ما لم تكن تريد إعطاء جامع تلميح، فمن المهم استخدامهdrain
في أي رمز قد يتم تجميعه لبيئة جمع القمامة.
لا تنتمي إلى StackOverflow