0

我有這樣的代碼,我通常會使用一個行:objective c - 如何在聲明我的cell.textlabels應該是什麼時設置範圍?

if (tableView == self.searchDisplayController.searchResultsTableView) 
{ 
    NSLog(@"Configuring cell to show search results"); 
    shoppingList = [self.searchResults objectAtIndex:indexPath.row]; 

    cell.textLabel.text = shopList.name; 
    cell.textLabel.text = shopList.type; 
    cell.textLabel.text = shopList.price; 
    cell.textLabel.text = shopList.occasion; 


    } 

我之所以這是我實現我的下搜索欄一個範圍。 現在,範圍工作,當我輸入一個名稱時,我希望看到名稱時,我選擇第一個作用域是產品的名稱。

但是發生了什麼是它顯示了什麼有時,因爲它是列表中的最後一個(我按)。所以當我輸入產品的名稱時,會出現匹配的場合而不是產品的名稱。

如何設置它顯示我在範圍中選擇的內容?

我已經實現了以下方法,使示波器正常工作,只是標籤不能正確顯示,這在上面的tableView部分代碼中會受到影響。

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope 
{ 

任何幫助是偉大的:-) 謝謝。

回答

0

=運營商是assignment運營商。這意味着無論在=運算符的左側,該運算符的行將在該行代碼執行後成爲右側的任何內容。

例如:

int i = 5; i = 4; i = 3; i = 8;

那些行的所有四個都執行之後,i等於8。不要緊,它以前是另一個值 - 運算符會刪除以前變量中的所有內容,並將新值放入其中。

所以,無論你希望你的代碼做什麼,你做的是抹殺的cell.textlabel.text每次使用=操作者的時間價值。 shopList.name,shopList.typeshopList.price在您將cell.textlabel.text設置爲shopList.occasion之後不再存在,出於同樣的原因i = 8在我上面的示例中。這是一個基本的和非常重要的編程概念。

你明白現在怎麼了?如果你想保存所有四個項目 - 價格,名稱,類型和場合 - 你需要四個單獨的變量來完成。


順便說一句,我沒有使用這個詞scope正確(除非我完全誤解你的程序的目的)相當肯定。維基百科:

在計算機程序中,範圍是一個計算機程序 其中變量名或其他標識符是有效的,並且可以 一起使用,或者在其內聲明有效果內的上下文。 範圍之外的變量名稱,變量的值仍然可以存儲, ,甚至可以通過某種方式訪問​​,但該名稱並不是指 它;也就是說,名稱不會綁定到變量的存儲。

+0

是的,你的解釋是有道理的,在實踐中我明白了,但並沒有真正理解它。至於範圍的含義 - 這是一個iPhone應用程序,對不起,也許我不清楚,我提到的範圍功能與搜索欄有關。範圍允許您設置所有結果的條件。 –

+0

好的,你還需要什麼幫助? :) – WendiKidd

+0

那麼我需要正確的結果來適當的範圍。所以當我按下名稱(按鈕)並填寫一個名稱時,我想要名稱出現,當我輸入價格時,我希望在按下價格(按鈕)時出現價格。目前它只顯示我無論最後一個cell.textlabel.text設置爲如前所述。 –

相關問題