Video: Cách giải phóng cả GB bộ nhớ trong cho iPhone 2025
Cách đơn giản nhất để quản lý bộ nhớ cho ứng dụng iOS là để cho các đối tượng-C runtime giải quyết nó bằng cách sử dụng một hệ thống gọi là tự động tham khảo tính (ARC) - xin vui lòng sử dụng nó. (ARC đã có sẵn từ năm 2011 trong Xcode 4. 2 trở lên)
Khi iOS được giới thiệu lần đầu tiên, bạn phải tự quản lý bộ nhớ bằng cách theo dõi vòng đời của các đối tượng trong chương trình của bạn. Bạn đã làm như vậy bằng cách nói với hệ thống thời gian chạy C khi để giữ lại và khi nào phát hành các đối tượng, sử dụng một chương trình Apple gọi là giữ lại, sử dụng một kỹ thuật được gọi là đếm tham chiếu
.
-
giữ lại
-
phát hành
-
autorelease
counter reference trong đối tượng về cơ bản nói với hệ thống thời gian chạy là có bao nhiêu nơi trong chương trình của bạn (hoặc các đối tượng khác) muốn duy trì một tham chiếu tới vật. Đây là cách tính số tham chiếu này được quản lý bởi iOS:
Mỗi lần giữ lại được gọi vào một đối tượng đích, số tham chiếu của nó sẽ tăng lên một lần.
-
Khi chúng ngừng sử dụng đối tượng đích, năm đối tượng sẽ gọi phát hành trên đối tượng. Mỗi lần phát hành được gọi, số đếm tham chiếu của đối tượng đích bị giảm đi (bằng một).
Khi số tham chiếu trở thành số không (tức là khi đối tượng cuối gọi ra), bộ nhớ của đối tượng được giải phóng bởi hệ thống.
-
Phương pháp thứ ba - autorelease - được gọi khi một đối tượng bạn đã tạo ra phải được trao cho một thread và bạn muốn các chủ đề để chăm sóc giải phóng các đối tượng khi chủ đề được thực hiện.
-
Bên trong, hệ thống ARC sử dụng cùng một hệ thống đếm tham chiếu được sử dụng để đếm tham khảo thủ công. Tuy nhiên, để sử dụng ARC, bạn đặt mã của bạn vào các khối @autoreleasepool như sau:
@autoreleasepool {… Mã của bạn …}
trình biên dịch
chèn phương thức quản lý bộ nhớ thích hợp vào mã lệnh rằng bất cứ điều gì được tạo ra bên trong khối @autoreleasepool này được giải phóng khi chương trình thoát khỏi khối.
