لماذا رنة يشكو كل autoreleased الكائنات ؟
-
20-08-2019 - |
سؤال
لدي الدالة التالية:
- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("?=&+/\r\n"),
kCFStringEncodingUTF8
);
return [result autorelease];
}
لماذا رنة تعطيني التالية الشكاوى ؟
- 1 استدعاء الدالة 'CFURLCreateStringByAddingPercentescapes' بإرجاع الأساسية المؤسسة الكائن مع +1 الإبقاء على عدد (امتلاك المرجعية)
- 2 وجوه إرسال رسالة autorelease
- 3 كائن عاد إلى المتصل مثل امتلاك المرجعية (واحد الاحتفاظ العد نقلها إلى المتصل)
- 4 كائن أكثر autoreleased:كائن تم إرسالها autorelease ولكن الهدف صفر (محليا مرئية) الاحتفاظ التهم
على حد علمي هذا يتوافق مع أبل مبادئ توجيهية بشأن إدارة الذاكرة وجوه الملكية.هل يجب أن تفرج صراحة الكائن ؟ هذا الخطأ قد حان حتى 19 مرات في المشروع ، تحت ظروف مماثلة.ما الخطأ الذي فعلته ؟
المحلول
لقد وجدت الإجابة على سؤالي ، ونشر هنا إذا كان أي شخص آخر يتعثر عبر هذه المسألة.لقد كان استخدام المدقق-0.198, checker-0.204 التقارير لا هذه المسألة.يبدو أنه مؤقت الانحدار.
لا تنتمي إلى StackOverflow