Trên iOS/CocoaTouch, tôi thường thấy mã tạo một phiên bản mới của NSAutoreleasePool trong một phương thức. Gần đây tôi đã nhìn thấy một trong một NSOperation.NSAutoreleasePool. Khi nào nó thích hợp để tạo ra một hồ bơi autorelease mới?
Quy tắc cơ bản để thiết lập phiên bản mới của NSAutoreleasePool là gì? Tại sao điều này thích hợp hơn để chỉ đơn giản dựa vào hồ bơi phát hành đã tồn tại từ trước được tạo trong main.m?
Cảm ơn,
Doug
Khi nào là một nhóm tự động trả lời địa phương không có lợi. Tôi thu thập được động cơ để tạo ra một động lực để quản lý mem tốt. Ngoài ra, bạn nói rằng một nhóm autorelease mới phải được tạo cho các chủ đề mới. Điều này có đúng với NSOperations không? Tôi là một người thử nghiệm cuồng tín và không thấy mems nào bị rò rỉ với các NSOperations hiện tại của tôi mà thiếu một nhóm autorelease địa phương. – dugla
@dugla Tôi không chắc liệu bạn có cần tạo một tài khoản cho NSOperations hay không. Khi một đối tượng được tự động phát hành mà không có một hồ bơi, nó sẽ in một thông báo đến bàn điều khiển, vì vậy bạn nên biết nếu bạn cần một. Tạo ra một hồ bơi là không có lợi nếu bạn không tạo ra rất nhiều đối tượng trong suốt cuộc đời của nó bởi vì nó là thêm một phân bổ thêm và chiếm chu kỳ xử lý. Nó không thể có bất kỳ lợi ích nào trừ khi bạn sử dụng các đối tượng khách quan trong suốt cuộc đời của nó, vì các đối tượng khác không sử dụng nó. – ughoavgfhw