【问题标题】: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];

【问题讨论】:

  • 我也遇到过这个问题。我通过不发布导航控制器来解决它。这不是最好的解决方案,但它对我有用。

标签: iphone objective-c uinavigationcontroller crash release


【解决方案1】:

FavoriteDetailViewController 中的某些内容在释放时崩溃。仔细看dealloc方法。还要确保将 FavoriteViewController 设置和委托为 nil。

【讨论】:

  • 我可以问下一个问题吗?也许很愚蠢,但我需要知道。何时在导航控制器中调用 dealloc 方法?这对我很重要,因为当我第一次打开 detailController 时,它会占用一些内存。当我按下返回按钮时,我会返回,但内存仍在使用。当我再次打开它时,它将使用下一部分内存。当我重复以下几次时,我会花费大量内存。在我看来,dealloc 方法永远不会被调用
  • 我不知道为什么,但是当我这样做时:[self.navigationController pushViewController:detailViewController animated:YES];详细视图控制器 = 无; [detailViewController 发布];它工作正常......但我仍然有上述问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多