我正在编写iPhone应用程序,我想问一下Objective-C中的传递参数。
我创建了2个视图控制器。在第一个,我有一个按钮,当用户按下按钮时,它将调用 - (IBAction)pressButton(用户定义),并在5-6秒后(必须处理和检索NSMutableArray *中的数据) ),它会显示一个表格。但是,我不知道如何将NSMutableArray传递给表类。我可以这样做吗?
// situation
// ---------------------------------------------
// In MyViewController.m
// class variable
NSMutableArray * arr;
- (IBAction) pressButton: (id)sender {...}
// I retrieve the data and store in the arr
// In TableView.m
// I want to pass the arr to here and use
我知道如何创建表,但我不知道如何将类(MyViewController.m)中的参数传递给另一个类(TableView.m)。
答案 0 :(得分:1)
在TableView.h中,声明一个方法:
- (void)doWhateverWithArray: (NSArray *)anArray;
在TableView.m中,实现该方法以执行您需要执行的任何操作。
在MyViewController.m中,靠近文件顶部({1}}之外... @implementation
)写@end
必要时将#import "TableView.h"
发送到您的表格视图。
函数调用是C等过程编程语言的基本组成部分;消息调度(AKA方法调用)是面向对象编程语言(如Objective-C)的基础部分。
这个问题的本质表明你刚刚开始编程(如果我错了,请不要把它当作侮辱 - 它不是。)我相信人们可以推荐任何数量的C或Objective-C的介绍性文本,但如果我在你的鞋子里,我会更进一步。
如果您有空,我建议您参加大学水平的编程课程,或者如果您有时间和奉献精神,甚至可以在大学注册计算机科学学位。 :)
答案 1 :(得分:0)
在TableView ViewController中创建像此一样的NSMutableArray
IBOutlet NSMutableArray *PassedArray;
@property(nonatomic,retain) NSMutableArray *PassedArray;
@synthesize PassedArray;
[PassedArray release];
现在你可以使用这个来从你的Myviewcontroller传递NSMutableArray值到tableviewcontroller
tableviewcontroller *objInstance = [[tableviewcontroller alloc]initWithNibName:@"tableviewcontroller" bundle:nil];
objInstance.PassedArray = NSMutableArray;//Here you declare your passed NSMutableArray
[self.navigationController pushViewController:objInstance animated:YES];
[objInstance release];
另一种方法是声明NSMutableArray * yourArray在MyViewController.h中是全局的,并在tableviewcontroller.m中对这些变量进行extern,如下所示
extern NSMutableArray *yourArray;