Tôi không rõ ràng về các mẫu quyền sở hữu đối tượng được yêu cầu cho các trường hợp sau. Khi UIViewController của tôi trình bày một bộ điều khiển cửa sổ bật lên, một trang tính hành động, hoặc một bộ điều khiển dạng xem khác như là phương thức, tôi có cần treo một tham chiếu được giữ lại cho bộ điều khiển con đó cho đến khi nó bị loại bỏ không?Giữ lại/phát hành mẫu cho UIPopoverController, UIActionSheet, và bộ điều khiển xem phương thức?
Nói cách khác, hãy thực hiện các dòng mã sau đây có hiệu quả "chuyển quyền sở hữu" hay không?
[aPopoverController presentPopoverFromBarButtonItem:someButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
[anActionSheet showFromBarButtonItem:someButtonItem animated:NO];
[aViewController presentModalViewController:someOtherViewController animated:YES];
Ai đó có thể chỉ cho tôi tài liệu rõ ràng về chủ đề này không?
Hãy coi chừng, tìm kiếmVC bị rò rỉ nếu bạn làm theo cách này. Thêm một autorelease. – steipete
Có, tìm kiếmVC bị rò rỉ. Thay vì một autorelease, một bản phát hành đơn giản cũng sẽ hoạt động. Thêm dòng này vào dòng cuối cùng: '[tìm kiếmVC release];' –
Là tài liệu cho 'popoverControllerDidDismissPopover:' nói: _ "Bộ điều khiển bật lên không gọi phương thức này để trả lời các cuộc gọi có lập trình đến phương thức dismissPopoverAnimated: Nếu bạn bỏ qua cửa sổ bật lên theo chương trình, bạn nên thực hiện bất kỳ hành động dọn dẹp nào ngay sau khi gọi phương thức dismissPopoverAnimated: "_. Vì vậy, nếu bạn sử dụng 'dismissPopoverAnimated:', bạn cũng sẽ cần phải gọi phát hành sau đó, nếu không bạn sẽ bị rò rỉ. – ivanzoid