[英]Xcode static analyzer performance when using singletons
我無法理解 XCode 中的 static 分析器如何識別可能涉及單例的泄漏。 在下面的代碼中,我收到警告,第一行以及第一個 return 語句中可能存在泄漏。 分析器將這些警告放在第二個 return 語句中。 由於我沒有在這些行中進行任何分配,因此我認為是對 singleton 的訪問及其可能的分配導致了此警告。 誰能向我解釋一下 static 分析儀發生了什么?
if ((self.tableView.editing & ([[[[GroupList sharedGroupList] newGroup] linkArray] count] < [[GrazeConstants sharedGrazeConstants] maxLinksPerGroup])) |
(([[[[GroupList sharedGroupList] newGroup] linkArray] count] == 0) & !self.tableView.editing)) {
return ([[[[GroupList sharedGroupList] newGroup] linkArray] count]+1);
} else {
return ([[[[GroupList sharedGroupList] newGroup] linkArray] count]);
}
根據 Cocoa memory 管理約定, new
前綴方法等效於alloc
+ init
對。 static 分析器假設您的newGroup
方法返回一個 object,保留計數為 +1,而不是自動釋放。
重命名方法(例如group
或makeGroup
),或者如果您無法更改名稱,則添加NS_RETURNS_NOT_RETAINED
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.