我加入由合作伙伴提供,以調用class_createInstance
我的iOS項目代碼返回的對象,然後在返回之前調用autorelease
,像這樣:分析錯誤時自動釋放呼籲通過class_createInstance
Class functionClass = objc_getClass(functionName);
NSObject* functionObject = class_createInstance(functionClass, 0);
[[functionObject performSelector:@selector(initWithDictionary:) withObject:msg] autorelease];
當運行分析Xcode的4.0.2,我得到的最後一行以下警告:
Object sent -autorelease too many times
問題1:這怎麼對象獲取發送自動釋放過多多次?
我對class_createInstance
的理解是我需要釋放它返回的值。
問題2:如果代碼是正確的,我該如何避免來自Analyze的警告?
我們有一個非常嚴格的政策,不檢查任何分析警告。
非常感謝。我選擇用類對象調用'alloc'並解決了這個問題。這是一個比他們之前做的更好的解決方案(它不是我的代碼)。我也向Apple提出了一個錯誤。 –