2016-11-13 63 views
-2

我有6個類別包含唯一的數據;我已經定義的類,看起來像這樣:如何在類之間持久化對象

@interface ExportBookData : NSObject { 

} 

@property (strong, nonatomic) NSArray *booksArray; 
@property (nonatomic, retain) NSMutableDictionary *builtFileList; 
@property (nonatomic, retain) NSMutableArray *exportData; 

@end 

我想要做的就是能夠實例化類ExportBookData,一次爲每個類別的內容,並使用該實例化的整個另一個類類,具有數據保存和可以在課間進行訪問。

我曾嘗試這個代碼,但它不會做什麼,我需要:

ExportBookData *abe = [ExportBookData new]; 
abe.abeBuiltFileList = [NSMutableDictionary dictionary]; 
abe.abeExportData = [NSMutableArray arrayWithCapacity:abe.abeBooksArray.count]; 

UPDATE的問題是在對象的地址;我有名爲Abe,Balls,Comp,Caller,Hut和House的類別。我希望這個班有屬性,可以作爲安倍,球等。我不知道如何做到這一點與我所定義的。

我已經看過Google,但沒有找到任何答案來回答我的具體問題。

+0

對於那些投下了這個問題的人:如果我不知道足夠聰明地問這個問題,我該如何顯示研究工作?我已經看過Google,發現沒有任何幫助。 – SpokaneDude

+0

爲什麼它不做你所需要的?你需要提供更多的細節。告訴我們它失敗的地方。 –

+0

「我希望這個班有屬性,可以作爲Abe,Balls等。」爲什麼你需要那個?換句話說,看看你的例子,爲什麼你需要一個名爲'abeBuiltFileList'的屬性?爲什麼不用一個'builtFileList'工作,不管這個東西是否被實例化爲Abe或Balls?很明顯,它只會被實例化,所以你只需要一個'builtFileList'屬性。 – matt

回答

1

封裝,封裝,封裝!將特殊知識放入課程本身

假設您有一個ExportBookData對象,其行爲有所不同,具體取決於使用哪個書商。然後提供一個初始化,需要一個書商類型:

ExportBookData *abe = [[ExportBookData alloc] initWithCategory:@"Abe"]; 

好了,現在ExportBookData這實例知道它行爲應該是安倍型行爲。但不管如何初始化ExportBookData,其公共屬性名稱將全部相同,例如, builtFileListexportData,那麼你就可以參考abe.builtFileList這將是種類的Abe列表。

+0

就是這樣!我會和它一起工作,現在我知道我需要什麼......感謝Matt,我非常感謝。 SD – SpokaneDude

+0

我應該指出,有可能更進一步並使用子類:也就是說,有一個ExportBookData類,它提供了一般行爲,然後是一個AbeExportBookData子類,一個BallsExportBookData子類等等,每個子類提供_specialized_行爲爲該書商。每當你看到自己爲一個類做了很多「切換類別類型」,這是一種難以理解的修正使用子類的嗅覺;從另一個角度來看,子類是一個開關,但是在結構層面而不是代碼邏輯層面。 – matt

+0

感謝您的信息;在這種情況下,每個書商都有一本與之相關的詞典,每本詞典都有兩個字符串數組,其中一個很少變化,另一個包含字符串,表明哪些書要由銷售場所進一步處理。這個應用程序作爲一個Windows應用程序已經存在了好幾年,並且爲iOS重寫了它,並進行了非常需要的改進。再次感謝您的幫助,我真的很感激。 SD – SpokaneDude

相關問題