Bộ nhớ cache có một số điều kỳ quặc khiến nó hoạt động tốt như bộ nhớ cache trong khi không phù hợp để sử dụng như một bộ sưu tập mục đích chung. Như đã đề cập trong các tài liệu:
đối tượng
NSCache khác với các bộ sưu tập có thể thay đổi khác trong một vài cách sau:
- Lớp NSCache kết hợp các chính sách tự động loại bỏ khác nhau, trong đó đảm bảo rằng nó không sử dụng quá nhiều bộ nhớ của hệ thống. Hệ thống sẽ tự động thực hiện các chính sách này nếu bộ nhớ là cần thiết bởi các ứng dụng khác. Khi được gọi, các chính sách này sẽ xóa một số mục khỏi bộ nhớ cache, giảm thiểu dung lượng bộ nhớ của nó.
- Bạn có thể thêm, xóa và truy vấn các mục trong bộ nhớ cache từ các luồng khác nhau mà không phải tự khóa bộ nhớ cache.
- Truy xuất nội dung nào đó từ đối tượng NSCache trả về kết quả tự động phát hành.
- Không giống như đối tượng NSMutableDictionary, bộ nhớ cache không sao chép các đối tượng chính được đưa vào đó.
Những tính năng cần thiết cho lớp NSCache, như bộ nhớ cache có thể quyết định để tự động biến đổi bản thân không đồng bộ đằng sau hậu trường nếu nó được gọi là để giải phóng bộ nhớ.
Chỉ cần cẩn thận khi thử nghiệm .. xác nhận "AssertEqualObjects" sẽ không hoạt động trên hai trường hợp riêng biệt nhưng trống của NSCache –