我想知道的是什么释放我的[超级delloc] 的对象之前,释放我行的目的[超级delloc]在[super delloc]语句前后释放对象之间的区别?
例如, 之前之后的区别..
- (void)dealloc {
[theAudioPlayer stop];
[soundFilePath release];
[theAudioPlayer release];
[super dealloc];
}
现在释放对象之后..
- (void)dealloc {
[super dealloc];
[theAudioPlayer stop];
[soundFilePath release];
[theAudioPlayer release];
}
当我用第一种情况下,我浏览我的viewController首先1日至2日的viewController类再来巴克2日至1日,然后它瓦特生病给我一些控制台后面的错误。
#0 0x02d29c93 in objc_msgSend()
#1 0x0628ae60 in ??()
#2 0x02b24814 in __CFURLDeallocate()
#3 0x02b23ed0 in _CFRelease()
#4 0x0012af48 in -[NSURL release]()
#5 0x02795827 in -[AVAudioPlayer dealloc]()
#6 0x0000480e in -[ViewController dealloc] (self=0x6285340, _cmd=0x2c0a934) at /Users/ajm/Desktop/DetectiveJone/Classes/ViewController.m:209
#7 0x02d23e9d in objc_setProperty()
#8 0x0039f7b3 in -[UINavigationController setDisappearingViewController:]()
#9 0x0039ce91 in -[UINavigationController _clearLastOperation]()
#10 0x0039d732 in -[UINavigationController navigationTransitionView:didEndTransition:fromView:toView:]()
#11 0x0054d25f in -[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:]()
#12 0x0054e39e in -[UINavigationTransitionView _navigationTransitionDidStop]()
#13 0x00325d54 in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]()
#14 0x00325be6 in -[UIViewAnimationState animationDidStop:finished:]()
#15 0x048a1933 in run_animation_callbacks()
#16 0x048a17da in CA::timer_callback()
#17 0x02b497dc in CFRunLoopRunSpecific()
#18 0x02b488a8 in CFRunLoopRunInMode()
#19 0x0356989d in GSEventRunModal()
#20 0x03569962 in GSEventRun()
#21 0x00307372 in UIApplicationMain()
#22 0x00002018 in main (argc=1, argv=0xbffff050) at /Users/ajm/Desktop/DetectiveJone/main.m:14
(gdb)
谢谢。那为什么当我在1st viewController类中播放声音时,它将在浏览第2个viewController后继续运行。我想声音应该无限地播放,当我目前第一viewController类然后声音将停止和对象应该释放时,我导航第二viewController.Which我应该在那里使用。 – Tirth 2010-10-21 07:51:00