【发布时间】:2011-06-06 19:18:15
【问题描述】:
我在行 [muscleURL release]; 的 dealloc 方法中说 *** -[CFString release]: message sent to deallocated instance 0x7021e80 时出现崩溃
muscleURL 的初始值是 @property (nonatomic, retain) NSString *muscleURL;
仅当我单击导航栏中的完成按钮时才会发生这种情况。下面是相关代码:
- (void)viewDidLoad
{
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissView)];
[self.navigationItem setRightBarButtonItem:doneButton];
[doneButton release];
}
-(void)dismissView
{
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count] -3)] animated:YES];
}
编辑:
在父视图中,父视图的muscleURL是这样初始化的
-(void)didSelectRowAtIndexPath
{
NSString *muscleURL = [[self.muscleArray objectAtIndex:indexPath.row]objectForKey:@"musclePicture"];
detailViewController.muscleURL = muscleURL;
}
【问题讨论】:
-
你能显示你初始化
muscleURL的代码吗? -
在父视图的didSelectRowAtIndex方法中,我有detailViewController.muscleURL = self.muscleURL。
-
.... 也是你调用 [muscleURL release] 的代码,可能你是 dealloc 方法。您看到的错误很可能是由muscleURL 的不平衡保留释放调用引起的。
-
那么父视图中的“muscleURL”是如何被初始化的呢?
-
我将代码添加到问题中。谢谢。
标签: iphone objective-c xcode memory-management dealloc