2012-01-30 32 views
1

在Objective c中,計算機從coredata生成.h文件。我不想更改該文件。如何在不更改原始.h或.m文件的情況下將私有變量添加到類中

不過,我想每個對象有外coredata

例如一些其他對象的引用,在企業核心數據對象,我想單元中的數據的引用表示業務的核心數據對象。

我該怎麼做?

+0

查看chuck對其中一個答案的評論。更改生成的代碼文件是你期望的。你爲什麼不想那麼做,或者爲什麼你不能那樣做?看看所有的模板項目 - 如果你沒有改變任何「生成」的代碼,你就不會走的很遠。 – jrturton 2012-01-31 06:30:39

回答

1

裏面的.m文件,你可以做到以下幾點:

@interface YourClass() { 
    @private: 

    NSString *someVariable; 
} 
@end 

@implementation YourClass 

-(void)viewDidLoad { 
    someVariable = @"asdf"; 
} 

@end 
+0

我不想更改.m文件,因爲它會自動生成 – 2012-01-30 14:06:24

+0

您可以爲您的類創建一個類別,然後在其中添加該變量。查看http://stackoverflow.com/questions/4146183/instance-variables-for-objective-c-categories – shawnwall 2012-01-30 15:22:35

+2

@JimThio:爲什麼文件自動生成的事實讓你不願意改變它?這並不意味着神聖不可侵犯。 Xcode有助於爲您生成大量的樣板*,並期望您將其更改*。 – Chuck 2012-01-31 06:06:14

1

即使@private關鍵字不是絕對必要作出someVariable私人在shawnwall以上(因爲已經獲得了私人性質的答案通過在實現文件內部的空類別接口聲明中),你的問題似乎揭示了MVC模式的可能中斷。真正的數據對象可能會被單元中的某些東西所關注?

+0

好吧,我在數據庫中使用了customCell。 customcell包含指向業務的箭頭。當有人移動iPhone我想箭頭更新並旋轉圖像。這意味着我需要對UIImage的引用。 – 2012-01-30 14:07:23

1

我認爲你應該重新考慮你的設計,不可能將實例變量添加到現有的類而不修改它。

可以將方法添加到現有類中,而無需使用類別修改原始源,但它聽起來不像您想要的那樣。

2

爲什麼不繼承?

NSManagedObject -> 
    MONObjectWithAnIvar { var } -> 
    MONModeledObject 
1

在obj-c中,您不能在外部修改現有類的成員。一種解決方法是使外部字典customCellarrow連接。然後,您可以獲得arrow作爲密鑰customCell的對象。

相關問題