在應用程序的某個位置,我的對象中的屬性被設置爲一個奇怪的值。通常情況下,我會通過設置一個類似的象徵斷點調試這樣的事情:是否可以使用動態屬性設置符的符號斷點(或類似符號)?
這樣,當有人試圖將該屬性設置爲我在尋找的價值,我得到一擊和我可以看看這個痕跡,看看它是從哪裏來的。
不幸的是,當您處理聲明爲@dynamic的屬性時,這不起作用。有沒有其他方法可以做類似的事情?
更多信息
有問題的對象是NSManagedObject
本項目採用RestKit其很有可能這就是價值的來源。
在應用程序的某個位置,我的對象中的屬性被設置爲一個奇怪的值。通常情況下,我會通過設置一個類似的象徵斷點調試這樣的事情:是否可以使用動態屬性設置符的符號斷點(或類似符號)?
這樣,當有人試圖將該屬性設置爲我在尋找的價值,我得到一擊和我可以看看這個痕跡,看看它是從哪裏來的。
不幸的是,當您處理聲明爲@dynamic的屬性時,這不起作用。有沒有其他方法可以做類似的事情?
更多信息
有問題的對象是NSManagedObject
本項目採用RestKit其很有可能這就是價值的來源。
你可以自己實現setter,並在那裏放置一個斷點。實現核心數據屬性設置器與正常情況有點不同。這樣的事情應該工作:
- (void)setFoo:(NSObject *)foo {
[self willChangeValueForKey:@"foo"];
[self setPrimitiveValue:foo forKey:@"foo"];
[self didChangeValueForKey:@"foo"];
}
執行此操作後,符號斷點也會被觸發。謝謝 – Logan 2014-12-03 20:07:31
我猜你已經嘗試過自己實現setter,並在那裏放置一個斷點? – Lance 2014-12-03 19:30:27
@Lance - 我沒有試過。我不知道爲什麼我認爲你不能覆蓋NSManagedObject上'@ dynamic'屬性的setter。我只是試了一下,它的工作。我想我應該看得更遠!如果你想更徹底地解釋它,並將其添加爲答案,我會繼續接受。謝謝! – Logan 2014-12-03 19:38:19