2012-07-02 35 views
9

tôi đã đi qua mã mà trông như thế này:Trên iOS, nơi bộ nhớ cache NSURLCache được lưu trữ nếu diskPath: không?

NSURLCache *URLCache = 
    [[NSURLCache alloc] initWithMemoryCapacity:1024 * 1024 
            diskCapacity:1024 * 1024 * 5 
             diskPath:nil]; 

Vấn đề là tôi đã không thể tìm thấy các hành vi mong đợi khi diskPath được truyền bằng không là gì. NSURLCache docs không mô tả một cách rõ ràng tình huống này cũng như tôi đã không thể tìm ra được bằng thử nghiệm của riêng tôi.

Bộ nhớ cache được lưu trữ ở đâu? hoặc là mã trên một lỗi?

Cảm ơn.

Trả lời

12

Tôi có thời gian rảnh hôm nay để thực hiện một số thử nghiệm và tìm thấy câu trả lời. Không có gì thú vị nhưng nếu bạn tò mò:

Theo mặc định iOS sẽ sử dụng cơ sở dữ liệu có tên Cache.db và, như @qegal đã đề cập, sẽ được lưu trữ ở vị trí mặc định.

3

Từ tài liệu liên kết của bạn:

Trong iOS, path là tên của một thư mục con của thư mục bộ nhớ cache mặc định của ứng dụng, trong đó để lưu trữ bộ nhớ cache trên đĩa (thư mục con được tạo ra nếu nó không tồn tại).

đoán tốt nhất của tôi sẽ được rằng nếu path là con số không (nghĩa là bạn không chỉ định một thư mục con), bộ nhớ cache sẽ chỉ được lưu trữ trong thư mục bộ nhớ cache mặc định (chứ không phải trong một thư mục con). Tôi không thể kiểm tra nó ngay bây giờ, bởi vì tôi đang gặp một số vấn đề về máy tính. Tôi cũng đoán rằng nó sẽ được lưu trữ trong thư mục bộ nhớ cache mặc định bởi vì tôi chắc chắn bạn sẽ nhận được một số loại cảnh báo hoặc lỗi hoặc trong thời gian chạy hoặc khi bạn đang viết mã. Tôi biết nếu tôi đã viết một cái gì đó như thế này:

[array writeToFile: nil atomically:NO]; 

Tôi sẽ gặp lỗi khi tôi không chỉ định đường dẫn đến tệp cần ghi.

Hy vọng điều này sẽ hữu ích!

+0

bạn có thể chia sẻ cách bạn sẽ xác định xem liệu bộ nhớ cache được lưu trữ trong thư mục mặc định? Tôi có thể thử nó trên đầu của tôi. – jlmendezbonini

+0

@jlmendezbonini Bạn có nghĩa là làm thế nào bạn sẽ xác minh rằng bộ nhớ cache được lưu trữ ở tất cả? – pasawaya

+0

Có. Tôi có thể thiếu một cái gì đó hiển nhiên về cách làm điều đó. – jlmendezbonini

2

Theo iOS 8.2 tập tin Cache.db được lưu trữ tại địa chỉ:

(App Folder)/Library/Caches/com.mycompany.appname/Cache.db 

đâu com.mycompany.appname là ID Bundle của bạn

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