如果我有一個聲明爲@dynamic的屬性,我通常在哪裏實現setter和getter?我需要找到我在給定的代碼庫中定義的位置。@dynamic實現哪裏可以找到它?
這是如何綁定到MSManangedObject?
如果我有一個聲明爲@dynamic的屬性,我通常在哪裏實現setter和getter?我需要找到我在給定的代碼庫中定義的位置。@dynamic實現哪裏可以找到它?
這是如何綁定到MSManangedObject?
假設您在此討論NSManagedObject的子類,setter/getters由CoreData提供。
兩個不同的東西:
如果你在談論@dynamic在由數據建模者表示核心數據實體生成的類使用,那麼實現由核心數據生成的爲好。你無法訪問它們。我認爲你可以重寫並放入自己的位置,但我沒有調查過。所以一般來說不要擔心它們。
@dynamic在您定義的類中使用(不是核心數據)意味着您將輸入屬性的getter和setter。在文檔中有很多這些應該是什麼樣子的例子。一般來說,如果你不打算將屬性的值存儲在一個變量中,會以某種方式首先轉換它,或者需要將其他一些處理掛鉤到getter/setter概念中,那麼只會這樣做。
不確定你的意思是「輸入」getter/setter。但是像你所描述的自定義getter/setter並不意味着他們是@dynamic。 @dynamic意味着你在編譯時根本沒有提供getter/setter,但是你承諾稍後在運行時介紹它們(或者處理forward)。對於一個正常的自定義getter/setter(計算,轉換,無論),你既不指定@synthesize也不指定@dynamic。 – 2010-11-07 04:19:11
是的,你不需要做@syntheize或@dynamic聲明。我也只是檢查了目標C doco,它說「...通過直接或在運行時提供方法實現...」,這意味着你編寫它們(鍵入)或其他機制生成它們(例如核心數據) 。如果我正在實施,我總是會放入@dynamic聲明。沒有理由,除了明確它。 :-) – drekka 2010-11-07 05:04:50
是由模型映射自動生成的子類嗎?或者我們手動創建? – Arcadian 2010-11-07 03:40:56
通常,您首先創建一個實體,然後在Xcode中創建模型類時,將它指向您創建的實體併爲您生成NSManagedObject的一個子類。 – 2010-11-07 04:13:56