我發現了從靜態分析器潛在泄漏的對象錯誤此行:潛在泄露對象錯誤
strCleanPhone = [[[[strPhone stringByReplacingOccurrencesOfString:@" " withString:@""]
stringByReplacingOccurrencesOfString:@"(" withString:@""]
stringByReplacingOccurrencesOfString:@")" withString:@""]
stringByReplacingOccurrencesOfString:@"-" withString:@""];
對於一個,然而這是剝離從電話號碼字符串非數字字符的優選方式?
二,你能解釋爲什麼這會是一個泄漏的對象嗎?
你說得對,問題在於使用strPhone。我嵌套了返回保留對象的核心基礎函數。因爲他們是嵌套的,他們沒有被釋放。 – 2010-09-03 18:53:33
還有一件事,你能詳細說明使用self.property = nil和[property release]之間的區別嗎?假設它們是相同的,我錯了嗎? – 2010-09-03 18:55:58
從發佈的角度來看它是等價的。如果你繼承,他們可能會有不同的行爲。另外,如果你改變了它的屬性,那麼設置爲零可能不再合適。最後,我認爲KVO功能是通過設置觸發的,但不是通過釋放(不確定)。 http://developer.apple.com/mac/library/documentation/cocoa/conceptual/KeyValueObserving/KeyValueObserving.html - 基本上,如果你只關心釋放,那麼設置爲nil是等價的。 – 2010-09-03 19:46:15