2010-07-08 6 views
13

Tôi đang thay đổi thành phần (đặc biệt, số lượng và màu của các thành phần), trong một UIPickerView mà tôi gọi là pickerOne, vì vậy sau khi thực hiện các thay đổi, tôi gọi:UIPickerView reloadData

[pickerOne reloadData]; 

và nó dường như đang hoạt động hoàn hảo tuy nhiên, tôi nhận được cảnh báo biên dịch:

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

Mặc dù điều này có vẻ hữu ích, có điều gì khác mà tôi nên sử dụng để tải lại dữ liệu không?

Cảm ơn

+0

Tôi tin rằng sự nhầm lẫn bắt nguồn từ UITableView có tải lạiData nhưng UIPickerView không (theo câu trả lời của người khác bên dưới). –

Trả lời

33

Tôi nghĩ rằng bạn nên sử dụng:

reloadComponent:

hoặc

reloadAllComponents:

+0

yup, không có cảnh báo xấu xí trên mã của tôi và cũng hoạt động tốt. cảm ơn bạn rất nhiều –

+1

Chỉ cần một lưu ý - reloadAllComponents không chấp nhận một đối số. Vì vậy, nó có lẽ nên đọc: reloadAllComponents thay thế. –

4

Bạn nên gọi reloadComponent: hoặc reloadAllComponents:.

Có thể có một reloadData riêng được sử dụng trong trang bìa, nhưng không phải là một phần của API công cộng và do đó, không nên dựa vào đó.

+0

2 câu trả lời giống nhau trong vòng 3 phút, tôi đoán tôi nên biết điều này. Cảm ơn bạn. –

0

Tôi nghĩ bạn nên sử dụng: reloadComponent hoặc reloadAllComponents.

Nhưng các phương pháp này vô ích trừ khi bạn kết nối UIPickerViewDalegateUIPickerViewDataSource cho chủ sở hữu tệp.

+0

Chào mừng bạn đến với Stack Overflow. Câu hỏi này đã được trả lời với cùng một thông tin bạn đã viết ở đây. Nếu bạn muốn thêm một cái gì đó vào câu trả lời của họ, bạn có thể đặt nó trong một bình luận dưới nó. :) – Emil