从NSMutableArray中拉出NSArray

时间:2011-06-23 22:03:24

标签: iphone objective-c ios xcode

我有一个NSMutableArray,它存储了其他数组的列表。当我运行代码时。

NSLog(@"%@",[[appDelegate teamRoster]objectAtIndex:[indexPath.row]class])

它返回并告诉我,我正在看一个数组,

然而,当我尝试执行以下操作时

[selectedRowerView tempArray] = [[appDelegate teamRoster]objectAtIndex:[indexPath.row]];

程序出错了。任何人都有任何想法为什么会发生这种情况?

2 个答案:

答案 0 :(得分:3)

您必须了解[selectedRowerView tempArray]实际上是正在发送的命令/消息。在C ++中,您正在调用selectedRowerView->tempArray() = ...。这没有逻辑意义,因为你不能对一个函数进行赋值。

您要做的是设置tempArray。如果你有适当的setter / getters设置,你可以运行:selectedRowerView.tempArray = ...;

请确保tempArray的@property@synthesize'。

答案 1 :(得分:1)

这个怎么样?

selectedRowerView.tempArray = [[appDelegate teamRoster]objectAtIndex:[indexPath.row]];

...假设tempArray是一个合成属性

@property (nonatomic, readwrite, retain) NSArray *tempArray;

@synthesize tempArray;

澄清:

selectedRowerView.tempArray = …;

内部处理到

[selectedRowerView setTempArray:…];

这是 setter方法

虽然

selectedRowerView.tempArray;

内部处理到

[selectedRowerView tempArray];

这是 getter方法

微妙但重要的区别。
foo.bar的含义取决于它所使用的上下文(封闭表达式)。