2010-07-08 14 views
13

mam zmianę elementów (w szczególności liczbę i kolor elementów), w UIPickerView że zadzwonię pickerOne, więc po dokonaniu zmian, wzywam:UIPickerView reloadData

[pickerOne reloadData]; 

i wydaje się działa doskonale, ale otrzymuję ostrzeżenie o kompilacji:

warning: 'UIPickerView' may not respond to '-reloadData' 

Chociaż wydaje się, że działa, czy jest coś jeszcze, co powinienem użyć, aby ponownie załadować dane?

Dzięki

+0

Wierzę, że zamieszanie wynika z UITableView, który ma ponownie załadowane dane, ale UIPickerView tego nie robi (jak na inne odpowiedzi poniżej). –

Odpowiedz

33

myślę należy używać:

reloadComponent:

lub

reloadAllComponents:

+0

tak, nie ma brzydkiego ostrzeżenia w całym kodzie i działa równie dobrze. bardzo dziękuję –

+1

Tylko uwaga - reloadAllComponents nie akceptuje argumentu. Powinien więc prawdopodobnie przeczytać: reloadAllComponents zamiast tego. –

4

Należy dzwonić reloadComponent: lub reloadAllComponents:.

Może być używany prywatny podryw reloadData, ale nie jest on częścią publicznego interfejsu API i dlatego nie należy na nim polegać.

+0

2 identyczne odpowiedzi w ciągu 3 minut, myślę, że powinienem wiedzieć to. Dziękuję Ci. –

0

Myślę, że powinieneś używać: reloadComponent lub reloadAllComponents.

Ale te metody są bezużyteczne, chyba że podłączysz UIPickerViewDalegate i UIPickerViewDataSource do właściciela pliku.

+0

Witamy w przepełnieniu stosu. Na to pytanie odpowiedziano już na te same informacje, które napisałeś tutaj. Jeśli chcesz dodać coś do swoich odpowiedzi, możesz umieścić go w komentarzu pod nim. :) – Emil