BOb*_*der 0 iphone objective-c release-management
好吧,我正在寻找这个错误,因为2个小时,我只是想弄清楚,请帮助我.我有以下情况我有2个viewcontroller.一个将另一个呈现为类似的模态.
SearchViewController *searchViewController = [[SearchViewController alloc]init];
[searchViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
searchViewController.delegate = self;
searchViewController.senderTag = [sender tag];
[self presentModalViewController:searchViewController animated:YES];
[searchViewController release];
Run Code Online (Sandbox Code Playgroud)
在我的searchviewcontroller中,我在.h文件中执行此操作
BSKmlResult *selectedAirport;
@property (nonatomic, retain) BSKmlResult *selectedAirport;
Run Code Online (Sandbox Code Playgroud)
在.m文件中我合成它,然后像那样设置它
selectedAirport = [self.airportList objectAtIndex:indexPath.row];
Run Code Online (Sandbox Code Playgroud)
然后在这里发布
- (void)dealloc {
[selectedAirport release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
在我的SearchViewController的委托方法中,它在第一个viewcontroller中实现,我也提供了SearchViewController我有以下内容
if (controller.selectedAirport) {
if (departureAirport) {
[departureAirport release];
}
departureAirport = [controller.selectedAirport copy];
}
[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
我缩小了错误发生的位置,它位于我的SearchViewController [selectedAirport release]的dealloc中;
但我无法弄清楚我的错误在哪里请帮助
小智 9
selectedAirport = [self.airportList objectAtIndex:indexPath.row];
Run Code Online (Sandbox Code Playgroud)
你不是在这里保留selectedAirport.
将其更改为
self.selectedAirport = [self.airportList objectAtIndex:indexPath.row];
Run Code Online (Sandbox Code Playgroud)
既然你找不到它,可能你不知道这个......
如果您不通过self.memberVariable访问成员变量,则不会访问其属性.因此,它没有得到保留.
当然,你也可以保留它
selectedAirport = [[self.airportList objectAtIndex:indexPath.row] retain];
Run Code Online (Sandbox Code Playgroud)
但是,那么你的财产的用途是什么......
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |