Thêm NSDictionary vào NSDictionary khác


87

Tôi có một cái NSDictionaryvà nó tải lên UITableView. Nếu người dùng cuộn ngày càng nhiều, tôi sẽ gọi API và kéo dữ liệu mới. Dữ liệu này một lần nữa ở dạng một NSDictionary. Có thể thêm cái mới NSDictionaryvào cái hiện có không?

Câu trả lời:


205

Bạn đang tìm kiếm anh chàng này:

[NSMutableDictionary addEntriesFromDictionary:]

Hãy chắc chắn rằng UITableViewtừ điển của bạn là một NSMutableDictionary!

Kiểm tra nó ở đây


9
Có, nhưng tại sao bạn muốn các mục nhập trùng lặp của các khóa trong từ điển?
Johan Karlsson

2
-[NSDictionary dictionaryByAddEntriesFromDictionary:]Tuy nhiên, điều tôi muốn là không có phương pháp nào như vậy NSDictionary.
DawnSong

Rõ ràng, đó chỉ là hoạt động liên hợp của từ điển, không phải các mục nhập trùng lặp. @JohanKarlsson
DawnSong

3
@DawnSong Tôi sẽ chỉ tạo một danh mục trên NSDictionary nếu tôi là bạn bằng phương pháp sau: + (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } Xin lỗi vì sự cố định dạng. StackOverflow không cho phép định dạng mã nhiều dòng thân thiện trong nhận xét.
BigSauce

Tôi nghĩ câu hỏi thực sự là làm thế nào để thực hiện điều này mà KHÔNG CÓ các đối tượng có thể thay đổi trung gian. Lợi ích chính của một thứ như vậy (ví dụ như tồn tại cho NSString) là an toàn luồng.
Motti Shneor

14

Sử dụng NSMutableDictionary addEntriesFromDictionary để thêm hai từ điển vào một từ điển có thể thay đổi mới. Sau đó, bạn có thể tạo một NSDictionary từ một từ có thể thay đổi, nhưng thường không cần thiết phải có một từ điển không thể thay đổi.


1

NSDictionary của bạn có đầy đủ các NSDictionaries khác không? Có vẻ như bạn sẽ cần một NSMutableArray mà bạn có thể thêm NSDictionaries vào cuối. Giả sử bạn có thể kiểm soát luồng dữ liệu đến và không có nguy cơ trùng lặp trong mảng của mình, bạn chắc chắn có thể nối thêm dữ liệu.

NSMutableArray *array = [[NSMutableArray alloc] init];
arrayCount = [array count]; // check the item count
[array addObject:dictToAppend];

Nếu không biết bạn đang triển khai nó như thế nào, tôi không thể cung cấp các ví dụ mã chi tiết hơn. Việc thêm các mục rất dễ thực hiện, nhưng hãy biết rằng nó chỉ có thể được thực hiện với các phiên bản có thể thay đổi của Mảng hoặc Từ điển. Hy vọng điều này sẽ giúp một chút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.