Tôi chỉ muốn thêm kinh nghiệm của mình ngoài câu trả lời của Quinn Taylor.
Trong một trong các ứng dụng của tôi, tôi phải phân tích cú pháp và lưu dữ liệu vào các đối tượng dữ liệu cốt lõi và sau đó đưa các đối tượng này hiển thị trên các khung nhìn. Trên thực tế, ứng dụng hoạt động tốt và không gặp sự cố nào, cho đến khi tôi cố gắng thực hiện một bài kiểm tra căng thẳng về việc điều hướng qua lại nhiều lần, cố gắng mở nhiều chế độ xem càng nhanh càng tốt. Ứng dụng bị lỗi với thông báo trên.
Tôi đã thử tất cả các phương pháp mà Quinn gợi ý trong câu trả lời của anh ấy và vẫn không tìm ra nguyên nhân chính xác là do đâu.
Tôi đặt NSZombieEnabled = YES và NSStackLogging = YES, chạy lệnh shell malloc_history để tìm hiểu lý do, nhưng vẫn không gặp may. Nó luôn chỉ ra nơi tôi lưu dữ liệu vào các đối tượng dữ liệu cốt lõi, trên thực tế, tôi đã kiểm tra hàng nghìn lần các đối tượng được phát hành quá mức ở đó, không có gì kỳ lạ.
Chạy trong Instruments với các công cụ khác nhau (Phân bổ, Rò rỉ, v.v.) vẫn không giúp được gì. Kích hoạt Bảo vệ Malloc vẫn không có gì.
Giải cứu cuối cùng: Tôi đã cố gắng quay lại các khung nhìn nơi các đối tượng được lấy từ Dữ liệu cốt lõi và gửi thông báo giữ lại cho tất cả các đối tượng này, đồng thời lưu ý những thay đổi này. Nó đã giải quyết được vấn đề !!!
Vì vậy, tôi phát hiện ra rằng tôi đã không giữ lại được, đó chính xác là nguyên nhân. Chỉ muốn chia sẻ kinh nghiệm của tôi để bạn có một giải cứu khác cho ứng dụng của mình.