2012-10-10 35 views
6

Tôi rất mới với NSCache.Làm thế nào để lưu trữ dữ liệu trong NSCache trong ios?

Tôi có một cuộc gọi API dẫn đến một số đối tượng. Làm thế nào để lưu trữ các đối tượng này trong NSCache để tôi không yêu cầu gọi lại API.

Có thể lưu trữ bao nhiêu dữ liệu trong NSCache. Có giới hạn cụ thể nào để lưu trữ dữ liệu trong NSCache hay không.

Hãy giúp tôi.

Trả lời

10

Hãy xem documentationsample code.

Đối tượng NSCache là bộ chứa giống như bộ sưu tập hoặc bộ nhớ cache, lưu trữ cặp khóa-giá trị, tương tự như lớp NSDictionary.

Here là giải thích tốt của Nick Zitzmann.

NSCache tương tự như NSMutableDictionary, với sự khác biệt là:
1. Đảm bảo an toàn chỉ.
2. Truy cập chậm hơn nhiều.
3. Đôi khi có thể thỉnh thoảng vứt bỏ đồ vật. Bạn có thể đặt chi phí và giới hạn, nhưng chúng không được bảo đảm để được theo dõi.
4. Nó không phải là miễn phí cầu nối với bất cứ điều gì trong CoreFoundation.
5. Bạn không thể truy vấn số đối tượng nằm trong bộ nhớ cache.
6. Bạn không thể liệt kê một bộ nhớ cache.

Tôi chỉ có thể khuyên bạn nên sử dụng NSCache để lưu trữ các đối tượng mà bạn không quan tâm về việc chúng có bị phá hủy tùy ý hay không. Nếu các đối tượng không được bị phá hủy hoặc nếu tốc độ truy cập là vấn đề thì hãy sử dụng NSMutableDictionary thay thế.

+0

Cảm ơn rất nhiều ... Cảm ơn bạn đã nhập mã mẫu .. –

+2

Tự hỏi, chậm hơn bao nhiêu? –

1

Từ tài liệu cho phù hợp của bạn

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSCache_Class/Reference/Reference.html

Các NSCache có rất nhiều chính sách tự động loại bỏ, mà đả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ó.

+0

Cảm ơn rất nhiều vì lời giải thích của bạn .. Nhưng có bao nhiêu dữ liệu có thể được lưu trữ trong NSCache? Chúng tôi có thể lưu trữ 2MB dữ liệu trong NSCache không? –

+0

@Pavi Hãy xem tài liệu. setTotalCostLimit: và setCountLimit: phương thức. –

+0

@ParagBafna Thanks.Let tôi kiểm tra xem. –

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