2009-09-17 30 views
10

Bạn sẽ tiếp tục hiển thị nội dung của một số NSSet trong một số UITableView như thế nào?Làm thế nào để hiển thị một NSSet trong một UITableView?

Như bạn đã biết, chế độ xem bảng sẽ yêu cầu phần tử tại một hàng nhất định, nhưng vì các phần tử NSSet không được đặt hàng, điều này không kết hợp tốt.

Giải pháp hiện tại của tôi là lặp lại thông qua NSSet cho đến khi tôi tiếp cận phần tử tại một chỉ mục nhất định, nhưng điều này thực sự không cảm thấy đúng.

Bạn có thể hỏi tại sao tôi không sử dụng số NSArray để thay thế. Điều này là do tôi đang sử dụng Dữ liệu cốt lõi, sử dụng NSSet giây để lưu trữ bộ sưu tập các phần tử.

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

28

Vì bạn chỉ hiển thị các yếu tố, tại sao không chụp NSSet và gọi -[allObjects] trên đó để nhận được NSArray?

Nếu dữ liệu của bạn thay đổi, bạn sẽ phải tìm nạp lại, ngay cả với NSSet và ngoài chuyển đổi ban đầu từ NSSet, việc sử dụng mảng khá nhanh.

+2

Tôi cảm thấy ngớ ngẩn vì đã đọc câu trả lời của bạn;) –

+7

Vì vậy, chúng tôi có thể giả định rằng 2 cuộc gọi liên tiếp đến "allObjects" trả về các phần tử theo thứ tự giống nhau (khi NSSet chưa được thay đổi)? Bởi vì tài liệu chỉ nói rằng "thứ tự không được xác định", nó không đề cập đến thứ tự là ổn định. Và nếu nó ổn định ngay bây giờ, bạn có chắc nó sẽ ổn định trong các phiên bản iOS trong tương lai không? Tôi không chắc chắn về việc dựa vào hàm này để lấy các phần tử mà tôi có thể hiển thị trong khung nhìn bảng. –

+0

@ChristopheFondacci chỉ cần gọi 'allObjects' một lần và lưu trữ kết quả trong một biến cho đến khi VC bị loại bỏ, hoặc cho đến khi thiết lập được thay đổi một lần nữa. –

Các vấn đề liên quan