iPhone传递对象引用到UIViewcontroller

时间:2011-07-12 12:11:23

标签: iphone objective-c ios4

我的rootviewcontroller中有一个NSMutableArray,它填充了问题对象,每个问题都包含必要的问题文本,选项和选择的值(如果问题尚未解答,则为null)

我还有其他uiview xibs,我根据问题类型推送到导航控制器。

当需要提出问题时,我想将相关的问题变量传递给相关的.xib

但是我想传递变量的对象引用,所以当用户编辑时,为该问题输入一些值,我不想发回任何值,但能够直接从该viewcontroller子类设置我的问题变量的值(传递通过referanace)

那么声明@property的正确方法和初始化uiviewcontroller的正确方法是什么?

在下面的代码中,rootviewcontroller数组中该变量的值也会发生变化吗?我想不是因为它看起来像我在那里传递值而不是参考,我怎么能改变呢?

rootview控制器中的

MultiSelectionTableViewController *multiSelectionViewController =[[MultiSelectionTableViewController alloc] initWithNibName:@"MultiSelectionTableViewController" bundle:nil];

NSMutableArray *variableitems;

    multiSelectionViewController.question=variableItems[0];

和uiviewsub controller:

Question * question;
@property(nonatomic, retain);
question.value=@"answer";

你也建议在这个结构中使用NSManagedObjects或任何coredata吗?这些问题从xml中解析出来,并以XML格式发回。

2 个答案:

答案 0 :(得分:2)

除非您将属性定义为副本,否则Objective C中的所有对象都将通过引用传递。因此,其他视图控制器中variableItems[0]的任何更改都将影响调用视图控制器中的对象。如果variableItems[0]是对象指针。

如果使用对象列表,需要存储数据,那么使用CoreData肯定是明智的。

答案 1 :(得分:-1)

尝试使用assign属性。这可以通过引用发送对象。