2009-08-06 22 views
10

Tôi đang tạo ra một NSArray bên trong một phương pháp, vì vậy tôi phải từ bỏ nó khi tôi hoàn thành nó. Tôi chuyển mảng này tới phương thứcTôi có phải giữ lại một đối tượng trước khi chuyển nó tới -performSelector: withObject: afterDelay :?

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay 

. Sau đó, tôi không cần mảng nữa trong phương thức của tôi gọi hàm performSelector: withObject: afterDelay :.

Documentaton không nói liệu anArgument có được giữ lại hay không, vì vậy tôi tự hỏi liệu tôi có phải autorelease hay giữ lại nó để sống sót. Bạn nghĩ sao?

+2

Nhận xét nhanh: autorelease sẽ không giúp ích gì bởi vì ai biết được độ trễ sẽ kéo dài bao lâu. Nó gần như chắc chắn sẽ dài hơn vòng lặp chạy cần để hoàn thành. –

+1

'-performSelector: withObject: afterDelay:' được đảm bảo chạy trên chu kỳ tiếp theo của vòng lặp chạy (ngay cả khi độ trễ là 0.0 giây), điều này có nghĩa là nhóm tự động làm sạch sẽ bị xóa. –

Trả lời

17

Các phương pháp performSelector giữ lại người nhận và đối số của họ.

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