好吧,我是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