2011-06-23 98 views
1

我有一個NSMutableArray存儲其他數組的列表。當我運行代碼。拉NSArray從NSMutableArray

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

它返回,並且告訴我,我在看一個數組,

然而,當我嘗試做以下

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

程序中的錯誤了。任何人有任何想法,爲什麼這可能會發生?

+0

您正在尋找'='賦值運算符錯誤一側的問題。 ;)看到我的答案。 – Regexident

回答

3

你必須明白,[selectedRowerView tempArray]實際上是一個命令/消息正在被髮送。在C++中,您打電話給selectedRowerView->tempArray() = ...。這不合邏輯,因爲你不能對一個函數進行賦值。

你要做的是設置tempArray。如果你有正確的設置/設置,你可以運行:selectedRowerView.tempArray = ...;

只要確保tempArray有一個@property並且是@synthesize'd。

+0

即時通訊仍然**預期':'之前']'令牌**任何想法? –

+0

沒關係,我把它當作[indexPath.row],但我需要indexPath.row。 –

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的含義取決於非常上下文(包圍表達)它被使用。