Tôi có một số NSDictionary
chứa các phiên bản của nhiều loại đối tượng khác nhau (NSArrays
, NSDictionaries
, NSStrings
, NSNumbers
, v.v ...). Nhiều người trong số NSDictionaries
và NSStrings
có lồng nhau riêng NSDictionaries
và NSArrays
.Làm thế nào để lặp qua một hệ thống phân cấp lồng nhau của NSDictionaries và NSArrays và chuyển đổi tất cả sang các bản sao có thể thay đổi?
Làm thế nào tôi có thể lặp qua toàn bộ hệ thống cấp bậc, từ trên xuống dưới, và chuyển đổi tất cả các trường hợp của NSDictionaries
và NSArrays
-NSMutableDictionaries
và NSMutableArrays
, tương ứng?
Có bất kỳ chức năng "bản sao có thể thay đổi theo cách đệ quy" dễ dàng nào mà tôi không biết? Nếu không, tôi chỉ cần lặp lại và gõ kiểm tra liên tục? Tôi có thể thay thế khi tôi đi hoặc tôi có xây dựng lại toàn bộ hệ thống phân cấp không?
Bạn có nghĩa là "khóa không được sao chép"? – zakdances
@yourfriendzak: Đối với một từ điển '@ {key: value}' mã của tôi sẽ tạo '@ {key: mutableCopyOfValue}', chứ không phải '@ {mutableCopyOfKey: mutableCopyOfValue}'. Các phím trong hầu hết các trường hợp là các chuỗi không đổi, do đó không sao chép chúng. –
@yourfriendzak: Thực ra mã này không nhiều hơn bạn yêu cầu. Nó tạo ra các bản sao có thể thay đổi khi có thể, ví dụ như các bản sao có thể thay đổi của các chuỗi trong cấu trúc phân cấp. Nếu không muốn, tôi có thể sửa đổi mã. –