Tôi đã làm theo lời khuyên có sẵn trong một số SO câu hỏi, như this one, để giải phóng MKMapView
từ bộ nhớ - Mã của tôi dưới đâyMKMapView bộ nhớ phát hành
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
self.map.mapType = MKMapTypeHybrid;
self.map.showsUserLocation = NO;
self.map.delegate = nil;
[self.map removeFromSuperview];
self.map = nil;
self.locationManager.delegate = nil;
}
Một phần, nó hoạt động, nhưng không hoàn toàn. Hãy để tôi cung cấp một số dữ liệu.
Dưới đây là bản ghi phân bổ bộ nhớ từ Công cụ.
Hai lá cờ đỏ (thế hệ) chỉ ra các trạng thái trước khi tôi hiển thị MKMapView
trong một bộ điều khiển xem phương thức và sau khi tôi đã bác bỏ nó. MKMapView
dường như bị deallocated. Ví dụ: nếu tôi lọc Ngăn xếp thống kê trong Công cụ cho MKMapView
, đối tượng thực sự xuất hiện khi chế độ xem phương thức được trình bày và biến mất sau khi được đóng. Tuy nhiên, khi loại bỏ chế độ xem bản đồ, tôi vẫn có hơn 30 MB bộ nhớ chưa được giải phóng.
Dữ liệu thế hệ B (cờ đỏ thứ hai) cho thấy có một số lượng lớn đối tượng (và không phải đối tượng) đang giữ bộ nhớ này.
Khi tôi nhìn vào chi tiết mở rộng của một trong những trường hợp đó, nó thường cho thấy một dấu vết ngăn xếp có tính năng các lớp học tin rằng, tôi đoán, có liên quan đến bản đồ vẽ
Có ai biết làm thế nào để giải phóng tất cả dữ liệu đó? Có một số bộ nhớ cache tôi có thể/nên sạch?
bạn đã quản lý để giải quyết vấn đề này chưa? – azimov
Thật không may, chưa .. – artooras
Có may mắn trong việc xóa bộ nhớ không? – sridvijay