导航控制器发布崩溃应用
Posted
技术标签:
【中文标题】导航控制器发布崩溃应用【英文标题】:Navigation controller release crash app 【发布时间】:2011-12-07 00:43:01 【问题描述】:我在 navigationController 中的发布有问题。我有一个带点的地图视图。当我单击地图点时,我会创建带有详细信息的新 detailViewController。一切正常,但是当我按下返回按钮时,我的应用程序返回到 mapController,然后崩溃。如果我评论发布一切正常,但 mapController 没有发布。 这是我的代码:
FavoriteDetailViewController *detailViewController = [[FavoriteDetailViewController alloc]
initWithNibName:@"FavoriteDetailViewController" bundle:nil favoriteID:
[[(DisplayMapAnnotation*)view.annotation detailID] intValue] favoriteName:
[(DisplayMapAnnotation*)view.annotation title] favoriteCompany:
[(DisplayMapAnnotation*)view.annotation subtitle] favoriteLocation:
[(DisplayMapAnnotation*)view.annotation detailLocation] favoritehtmlString:nil
favoriteJobIndex:0 favoriteTotalJobs:1 favoriteGeoLat:detailArrayData.geoLat
favoriteGeoLng:detailArrayData.geoLng favoriteFullUrl:detailArrayData.fullUrl
favoriteExportUrl:detailArrayData.exportUrl favoriteIdent:1];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
【问题讨论】:
我也遇到过这个问题。我通过不发布导航控制器来解决它。这不是最好的解决方案,但它对我有用。 【参考方案1】:FavoriteDetailViewController 中的某些内容在释放时崩溃。仔细看dealloc方法。还要确保将 FavoriteViewController 设置和委托为 nil。
【讨论】:
我可以问下一个问题吗?也许很愚蠢,但我需要知道。何时在导航控制器中调用 dealloc 方法?这对我很重要,因为当我第一次打开 detailController 时,它会占用一些内存。当我按下返回按钮时,我会返回,但内存仍在使用。当我再次打开它时,它将使用下一部分内存。当我重复以下几次时,我会花费大量内存。在我看来,dealloc 方法永远不会被调用 我不知道为什么,但是当我这样做时:[self.navigationController pushViewController:detailViewController animated:YES];详细视图控制器 = 无; [detailViewController 发布];它工作正常......但我仍然有上述问题以上是关于导航控制器发布崩溃应用的主要内容,如果未能解决你的问题,请参考以下文章