Cụ thể, vấn đề này đã đến với tôi khi tôi đưa ra yêu cầu AFNeworking với JSONkit và nhận một JSON (id) với một số mảng và từ điển được lồng vào nhau.Cách tiếp cận tốt nhất để chuyển đổi các đối tượng bất biến thành các đối tượng có thể thay đổi (đệ quy) là gì?
Nếu tôi không muốn thay đổi các dữ liệu, tôi không có bất kỳ vấn đề:
self.myNSArray = [JSON objectForKey:@"result"];
Nhưng nếu tôi muốn sửa đổi dữ liệu tôi phải để lưu trữ nó trong một biến có thể thay đổi:
self.myNSMutableArray = [[JSON objectForKey:@"result"] mutableCopy];
Người cuối cùng không chuyển đổi mảng lồng nhau hoặc từ điển để dữ liệu có thể thay đổi; nó chỉ hoạt động ở cấp độ đầu tiên.
Cách duy nhất mà tôi đã tìm thấy là trên liên kết này recursive mutable objects; nhưng tôi không biết liệu có cách nào tốt nhất để giải quyết vấn đề này không.
Xin cảm ơn trước.
Nó hoạt động như một sự quyến rũ. Cảm ơn! – martinezdelariva
Tương đương ARC có vẻ là 'CFBridgingRelease (CFPropertyListCreateDeepCopy (NULL, (__bridge CFPropertyListRef) (immutableArray), kCFPropertyListMutableContainersAndLeaves)); ' – brainjam
@omz Nếu điều này làm việc cho từ điển, bạn có biết không? Có vẻ như không làm cho nó chuyển đổi. –