如何在Objective-C中将.m中的参数传递给另一个.m

时间:2010-07-16 03:42:16

标签: ios objective-c class parameters nsmutablearray

我正在编写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)。

2 个答案:

答案 0 :(得分:1)

  1. 在TableView.h中,声明一个方法:

    - (void)doWhateverWithArray: (NSArray *)anArray;
    
  2. 在TableView.m中,实现该方法以执行您需要执行的任何操作。

  3. 在MyViewController.m中,靠近文件顶部({1}}之外... @implementation)写@end

  4. 必要时将#import "TableView.h"发送到您的表格视图。

  5. 函数调用是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;