我正在使用的一个实例,EKEventEditViewController
所以我可以编辑一个选定的事件。当控制器通过关闭时,eventEditViewController:didCompleteWithAction:
我注意到我的内存使用量没有下降。以后每次使用 EventEditViewController 都会增加我的内存使用量,而且它永远不会下降。我的应用开始使用了 4.2mb 的内存。如果我所做的只是在我的表格视图中选择一个单元格,呈现事件编辑控制器,关闭事件编辑控制器并多次重复该过程,那么我设备上使用的内存量将增加到 10mb 以上。
有人可以告诉我我做错了什么吗?好像我正在泄漏内存。我正在使用 ARC 并且有一个指向 EKEventEditViewController 类型属性的强指针。当我去展示控制器时,我重新分配/初始化控制器,应该释放之前的引用正确吗?
@interface HZRunwayViewController ()
@property (strong, nonatomic) EKEventEditViewController *eventEditViewController;
@end
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.viewOptions.selectedSegmentIndex == 2) {
if (indexPath.section == 0 && [self.eventsForCurrentDay count]) {
id cell = [tableView cellForRowAtIndexPath:indexPath];
if ([cell isKindOfClass:[HZEventTableViewCell class]]) {
HZEventTableViewCell *eventCell = (HZEventTableViewCell *)cell;
if (eventCell ) {
EKEvent *event = eventCell.event;
self.eventEditViewController = [[EKEventEditViewController alloc] init];
self.eventEditViewController.eventStore = self.calendarData.eventStore;
self.eventEditViewController.editViewDelegate = self;
self.eventEditViewController.event = event;
[self presentViewController:self.eventEditViewController animated:YES completion:nil];
}
}
}
}
}
- (void)eventEditViewController:(EKEventEditViewController *)controller didCompleteWithAction:(EKEventEditViewAction)action {
[self updateDayLogic];
[self dismissViewControllerAnimated:YES completion:nil];
}
附带说明一下,没有包含 updateDayLogic 方法,因为我使用 UIButton 对其进行了测试,多次调用它,而我的内存使用量在几次调用后仅增加了 0.2mb。问题似乎源于 EKEventEditViewController