好吧,我是Objective-C/iPhone編程的新手,所以當我嘗試做一些在C++中很容易的事情時會出現一些問題。訪問其他類/對象中的方法和變量(其中的對象btw)?
我建立一個基於標籤欄的iPhone應用程序有三個視圖,每個標籤欄按鈕一個。在第一個視圖中,用戶構建一個NSdictionary,第二個視圖將顯示爲一個圖形。爲了訪問這個詞典,我將它保存到第一個視圖控制器中的.plist中,然後在第二個中從此.plist中構建一個新詞典。
爲了製作圖形視圖,我使用了s7graphview,它在SecondViewController中被初始化等,但有它自己的.h和.m文件,我導入了它。在GraphInfoList.m文件中實現了將值加載到圖中的方法(來自創建的字典),這意味着我必須從.plist創建另一個字典才能訪問數據。我如何訪問已經創建的字典?
雖然這樣做,我還做了一個方法「dataFilePath」,它返回.plist的文件路徑,我用它來將數據加載到字典中。我發現沒有其他方法實施這種方法,而不是複製/粘貼到每個使用它的.m文件!還有另一種方式嗎?
一段時間我在這裏:iPhone編程中的對象在哪裏? .m文件是類,是不是?我從來沒有使用new運算符創建一個新對象,並且我認爲如果我有任何要調用的對象(如[FirstViewController dataFilePath]),我可能會訪問這些方法。
我真的不知道在Obj-C/Cocoa中如何處理這個問題,我不知道該如何尋找答案。幫助將非常感激。
類和'.m'文件之間通常有1-1映射。但這不是要求。您可以在同一'.m'文件中實現多個類,或者我通常將一個類的實現擴展爲多個.m'文件。當你輸入'@interface Name:Superclass'時,這個類就是你輸入的地方。 – PeyloW 2011-05-13 16:04:52
是的,好點,我只是想盡快提及他如何看待它。 – 2011-05-13 16:19:11
謝謝,試圖把功能放在應用程序委託中,並且這樣做: 在appDelegate.h中: - (NSString *)dataFilePath; .m: - (NSString *)dataFilePath {NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString * documentsDirectory = [paths objectAtIndex:0]; return [documentsDirectory stringByAppendingPathComponent:@「data.plist」]; } 當我打電話給 NSString * myFilePath = [[[[UIApplication sharedApplication] delegate] dataFilePath];在FirstViewController.m它說方法-dataFilePath沒有找到......有什麼問題? – 2011-05-13 16:45:57