我不明白爲什麼,即使在Xcode 6上,我需要點擊self
,搜索屬性,然後才能看到值。 如果對象有100個屬性,這是非常煩人的。使用Xcode進行調試時,有沒有辦法在代碼中查看鼠標光標時的屬性值?
我在尋找簡單的解決方案,當我把我的鼠標光標移到self.someproperty
, 上面的「someproperty
」我會看到它的價值,在任何情況下,NSString
,NSArray
等
感謝。
我不明白爲什麼,即使在Xcode 6上,我需要點擊self
,搜索屬性,然後才能看到值。 如果對象有100個屬性,這是非常煩人的。使用Xcode進行調試時,有沒有辦法在代碼中查看鼠標光標時的屬性值?
我在尋找簡單的解決方案,當我把我的鼠標光標移到self.someproperty
, 上面的「someproperty
」我會看到它的價值,在任何情況下,NSString
,NSArray
等
感謝。
這大概是因爲「屬性」你盤旋在沒有真正的變量。它們是訪問器方法的語法糖(通常引用一個後臺實例變量,但不一定如此)。這些訪問器方法(getter和setter)是爲您合成的,或者您可能已經手動實現了您自己的自定義方法。有關聲明的屬性的更多信息,請參見Declared Properties討論Apple的核心競爭力文件或Properties Encapsulate an Object's Value在編程Objective-C文檔。
請考慮下面的foo
屬性。你不能懸停在對self.foo
的引用上,看看你的期望。但是,如果你將鼠標懸停在實例變量(伊娃),其背上的財產,你可以:
(順便說一句,注意參考上面self.foo = ...
不引用foo
getter方法,但實際上調用了setter方法setFoo
。因此,讓IDE調試器認識到,在執行暫停時,將鼠標懸停在該「屬性」上,但意識到要調用getter來查看該值,這似乎不是一件容易的事情比調用setter的那一行代碼實際引用的要多。)
無論如何,回到IDE,你也可以扭曲開放self
,你會看到它,太:
這些技術是不完美的(調試程序有時會很困惑),但希望這說明了基本的UI。
我收集你希望它懸停在屬性名稱上時調用訪問器方法。這是否意味着你也希望它調用鼠標懸停的隨機方法?在一個純粹的函數式語言中,這個概念看起來似乎更合理一些,但在程序語言中,任何方法都可以改變狀態變量併產生一些意想不到的結果,這似乎是危險的。我會認爲,如果你考慮這樣的功能,它應該需要一些更肯定的行動,而不僅僅是徘徊在它上面。
無論如何,如果您確實需要此功能,請在http://bugreport.apple.com處提交「功能請求」。
感謝您的信息。 我仍然認爲Microsoft Visual Studio在2004年或更短時間內做了什麼, Apple XCode在2015年可以做到。 懸停只有在0.2秒後觸發並調用屬性,才能防止觸發不需要的動作。 99%的getter屬性只需要返回值而不會改變狀態。那是什麼方法。 如果該屬性做了更多的事情然後返回值,開發人員需要以簡單或難以理解的方式來理解。 順便說一句,即使沒有調用屬性彈出ivar更好,然後搜索自己的財產 – user1105951
你是指在調試器中? – nburk
我的意思是在實際執行的代碼中設置斷點的位置。實現類。 – user1105951