在我的應用程序委託中,我有一個對象,我需要在一些不同的3個viewControllers中使用。 要使用它,我做的界面Objective-c某些viewController中使用的委託必須被釋放?
NewsPadAppDelegateiPad *delegate;
,並在執行我做
delegate = (NewsPadAppDelegateiPad *)[[UIApplication sharedApplication] delegate];
[delegate.reader setDelegate:self];
....
[delegate.reader doSomthing];
當在我的dealloc方法我做
[delegate release];
delegate=nil;
我收到錯誤
[CFString release]: message sent to deallocated instance 0x9d4fac0
我真的需要釋放那個?
您不應該保留並釋放您的應用程序委託。它由應用程序創建,並會在沒有您的幫助的情況下保留到應用程序的末尾。事實上,在您的視圖控制器中沒有真正的需要使用委託變量 - 您可以在需要時重新獲取委託指針,也可以將其保存在給定方法的局部變量中,但不能保存實例變量。 –