2011-08-12 29 views
5

Giả sử tôi có một bộ điều khiển gốc MyViewController, với một biến mẫu có tên là var1. Tôi gán một giá trị cho var1, nhưng tôi không giải phóng nó trong phương thức dealloc.một cái gì đó về phương pháp dealloc

Câu hỏi của tôi là điều gì sẽ xảy ra sau khi thoát ứng dụng?

Trả lời

5

Từ dealloc documentation ...

Chú ý: Lưu ý rằng khi một ứng dụng chấm dứt, các đối tượng có thể không được gửi một thông điệp dealloc từ bộ nhớ của quá trình được tự động xóa khi thoát-nó là hiệu quả hơn chỉ đơn giản để cho phép hệ điều hành dọn sạch tài nguyên hơn là gọi tất cả các phương thức quản lý bộ nhớ . Vì lý do này và các lý do khác, bạn không nên quản lý tài nguyên khan hiếm trong dealloc — xem “Quyền sở hữu và Xử lý đối tượng” trong Hướng dẫn lập trình quản lý bộ nhớ để biết thêm chi tiết.

+0

+1 chỉ dành cho tài liệu. –

+0

Vì vậy, tôi có thể nói rằng nếu một thể hiện của một lớp luôn tồn tại trong thời gian sống của ứng dụng, thì không thể giải phóng các biến cá thể của lớp trong phương thức dealloc? Bởi vì không có vấn đề gì, hệ điều hành sẽ làm điều đó cho chúng ta. –

4

Bộ nhớ được khai hoang khi ứng dụng thoát. Tuy nhiên, xin lưu ý rằng ứng dụng của bạn không thoát trong các phiên bản iOS gần đây trừ khi người dùng chấm dứt hoặc hệ điều hành chấm dứt nó vì sử dụng quá nhiều bộ nhớ.

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