我知道网上已经有很多关于这个问题的问题,甚至是有用的答案。我尝试从应用程序内部向日历添加日历事件。我使用了这个实际工作的代码:
EKEventStore *es = [[EKEventStore alloc] init];
EKEventEditViewController *controller = [[EKEventEditViewController alloc] init];
controller.eventStore = es;
controller.editViewDelegate = self;
[self presentModalViewController:controller animated:YES];
唯一的问题是我无法释放日历控制器,这是因为我应该说:
[Controller release]
或者其他什么 但我的main.m设置为autorelease:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([...AppDelegate class]));
}
}
如果我手动释放我收到错误,我是否必须更改main.m中的内容?
答案 0 :(得分:0)
据我所知,你可能正在使用ARC。要检查,请转到项目标签,选择构建设置并输入搜索栏
自动参考计数
如果设置为YES,则无需释放对象。
修改强>
看起来对 release 一词存在误解。如您所述发布(在对象上调用 release )意味着减少对象引用计数器。
解雇模态视图控制器是完全不同的事情。为了做到这一点,
在取消按钮委托方法中,您必须调用:
[yourViewControllerInstance dismissModalViewControllerAnimated:YES];
这就是你要搜索的方法。
答案 1 :(得分:0)
在目标的构建设置中,如果您看到 Objective-C自动引用计数,那么您正在使用ARC:
如果您使用ARC,那么您不负责自行释放对象。
我强烈建议您阅读有关ARC的更多信息,您可以从here开始,如果您想构建一个真正的应用程序,这是您应该考虑的最重要的事情。