NSObject (MyCustomObject)의 하위 클래스가 인스턴스화되어 일부 논리를 수행하고 UIAlertView를 표시할지 여부를 결정합니다. MyCustomObject는 UIAlertViewDelegate 프로토콜을 구현하여 좀 더 많은 로직을 수행하고 alertView : clickedButtonAtIndex :에서 NSUserDefaults를 설정합니다. myCustomObject는 어디에서 해제해야합니까? 사용자가 경고보기의 단추 중 하나를 클릭 한 후에 myCustomObject가 더 이상 필요하지 않으면 myCustomObject가 alertView : didDismissWithButtonIndex :에서 자체를 해제 할 수 있습니다.나는 UIAlertViewDelegate 프로토콜을 준수하는 NSObject입니다. 자신을 릴리즈하는 것이 적절한가요?
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"I'm UIAlertView's Delegate and I'm releasing myself");
[self release];
}
BC 내가 그것을 할 때마다, 나는 또한 술취한 코카인 중독자 인 것 같은 기분이다. 너무 지저분 해 ... "이봐, 너 나 풀어 줘, 알았지?" 나는 몰라. – Fattie
왜 스스로 풀어 놓는 것이 좋을까요? 만약 자급 자족의 로직이라면, 그냥 놓아두기 위해 여분의 레이어를 만들어야하는 이유는 무엇입니까? – SVD
감사합니다. BoltClock, 귀하의 기술은 정적 분석기를 너무 행복하게 만듭니다 (호출 코드가 myCustomObject를 릴리스하지 않기 때문에 누출이라고 생각합니다). 호출 코드는 뷰 컨트롤러입니다. myCustomObject를 ivar로 설정하고 내 View Controller의 dealloc 메소드에서 해제하는 것이 더 멋지겠습니까? – MattyG