Một trong các ứng dụng của tôi, rất thường xuyên, báo cáo Bộ nhớ của nó (thông qua Cài đặt -> Chung -> Cách sử dụng -> Bộ nhớ) dưới dạng 4GB khi, trên thực tế, tổng kích thước của tất cả các tệp trong ứng dụng Sandbox (Documents, Library, tmp) trung bình khoảng 10MB hoặc hơn.Báo cáo ứng dụng không chính xác Cách sử dụng/Lưu trữ
Tôi sắp kết thúc và tự hỏi liệu có ai đã trải nghiệm bất cứ điều gì như thế này không. Tôi có một nghi ngờ lén lút rằng đó là một cái gì đó liên quan đến UIDocument, nhưng không thể chắc chắn. Nó có vẻ như quá ít để tiếp tục ngay bây giờ để tạo ra một radar.
Trong một số trường hợp, ứng dụng sẽ buộc hệ thống hiển thị hộp thoại cảnh báo người dùng rằng hệ thống sắp hết bộ nhớ. Khi điều này xảy ra có vẻ như hệ thống điều chỉnh sự khác biệt giữa dung lượng lưu trữ mà ứng dụng đang sử dụng và thực tế và số lưu trữ sau đó sẽ giảm xuống 10MB hoặc lâu hơn.
Thật kỳ lạ.
Bất kỳ ý tưởng nào về những điều tôi có thể xem sẽ được đánh giá cao.
Việc thực hiện contentsForType: lỗi:
- (id) contentsForType: (NSString *) inTypeName
error: (NSError **) outError
{
NSFileWrapper *newWrapper, *audioFileWrapper;
NSString *audioFilename;
NSURL *newAudioWrapperURL;
newWrapper = [[[NSFileWrapper alloc] initDirectoryWithFileWrappers: nil] autorelease];
// add updated info
[newWrapper addRegularFileWithContents: [NSKeyedArchiver archivedDataWithRootObject: self.testInfo] preferredFilename: QSDocumentInfoKey];
// scan audio files and clean up where needed
for (NSDictionary *wordInfo in self.wordInfoList) {
if ((audioFilename = [wordInfo objectForKey: QSInfoAudioKey]) != nil) {
newAudioWrapperURL = [self.fileURL URLByAppendingPathComponent: audioFilename];
if ([[NSFileManager defaultManager] fileExistsAtPath: [newAudioWrapperURL path]]) {
audioFileWrapper = [[[NSFileWrapper alloc] initWithURL: newAudioWrapperURL options: 0 error: nil] autorelease];
[newWrapper addFileWrapper: audioFileWrapper];
}
}
}
self.fileWrapper = newWrapper;
return self.fileWrapper;
}
Bạn đang lưu trữ dữ liệu của ứng dụng như thế nào? – jrtc27
Ứng dụng của bạn làm gì (không cần chi tiết cụ thể)? Bạn có kiếm tiền gì không? Tải xuống mọi thứ. Bất kỳ lý do gì đó có thể đi sai một mảng hoặc một số thứ khác mà bạn viết xuống sẽ rất lớn? Liệu nó có xảy ra trên giả lập không? – Ali
Lưu tệp qua UIDocument bằng NSFileWrapper. Một điều kỳ lạ khác: Tôi thậm chí không phải tiết kiệm bất cứ điều gì cho việc này xảy ra. Nỗ lực cuối cùng để lưu trữ thông tin có thể là giờ hoặc một ngày trước và điều này sẽ chỉ xảy ra ngẫu nhiên. –