2014-02-23 77 views
2
對象作爲文本

嘿我試圖在UITextView顯示從NSMutableArray文本對象和我得到了一個問題:顯示的NSMutableArray中的UITextView

Invalid operands to binary expression ('void' and 'NSString *') 

任何建議如何能不能做到?

這裏是代碼:

for (id obj in Mview.arrayTape) 
viewTape.text = Mview.arrayTape.removeLastObject + @"/n" + viewTape.text; 

viewTape是UITextView的,arrayTape是從NSMutableArray的另一種觀點認爲

任何幫助將非常感激傳遞。

回答

2

removeLastObject回報的去除nothing(無效),並要附加其結果,使一個新的字符串:

viewTape.text = Mview.arrayTape.removeLastObject + @ 「/正」 + viewTape.text;

嘗試此代替:(untested

for (NSString* obj in Mview.arrayTape) 
{ 
    viewTape.text = [viewTape.text stringByAppendingFormat:@"%@\n", obj]; 
} 

假設obj是一種類型的NSString,如果不使用其相應的字符串表示。

編輯

另一種方法。沒有其他的解決方案提供,無需使用for loop

viewTape.text = [Mview.arrayTape componentsJoinedBy:@"\n"] 
+0

你的NSString – ASKASK

+2

@ASKASK後缺少*,感謝指針。 – NeverHopeless

+0

爲什麼downvote? – NeverHopeless

0

這是因爲這種方法removeLastObject不返回任何東西,看看here。你應該得到的最後一個對象,並獲得字符串值添加它(其追加)在文本視圖中的文本,如果需要

1

Mview.arrayTape.removeLastObject具有返回類型void即它沒有返回值。而且你不能連接任何字符串,因爲void沒有類型(或類)。

我猜你想要的東西是這樣的:

viewTape.text = [NSString stringWithFormat:@"%@\n%@",(NSString *)Mview.arrayTape.lastObject,viewTape.text]; 

您可以刪除的最後一個對象事後如果打算:

[Mview.arrayTape removeLastObject]; 
+4

Objective-C沒有用'+'連接字符串。這隻會造成更多的錯誤。 – ASKASK

+0

你說得對。我沒有意識到代碼的第二個問題。我更新了我的回覆。 – Mischa

+0

現在這是一個很好的答案,+1 – ASKASK