簡體   English   中英

Xcode static 使用單例時的分析器性能

[英]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,而不是自動釋放。

重命名方法(例如groupmakeGroup ),或者如果您無法更改名稱,則添加NS_RETURNS_NOT_RETAINED屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM