从我的应用程序内部创建日历事件

时间:2013-08-10 09:15:08

标签: iphone ios eventkit

我知道网上已经有很多关于这个问题的问题,甚至是有用的答案。我尝试从应用程序内部向日历添加日历事件。我使用了这个实际工作的代码:

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中的内容?

2 个答案:

答案 0 :(得分:0)

据我所知,你可能正在使用ARC。要检查,请转到项目标签,选择构建设置并输入搜索栏

  

自动参考计数

如果设置为YES,则无需释放对象。

修改

看起来对 release 一词存在误解。如您所述发布(在对象上调用 release )意味着减少对象引用计数器
解雇模态视图控制器是完全不同的事情。为了做到这一点, 在取消按钮委托方法中,您必须调用:

[yourViewControllerInstance dismissModalViewControllerAnimated:YES];

这就是你要搜索的方法。

答案 1 :(得分:0)

在目标的构建设置中,如果您看到 Objective-C自动引用计数,那么您正在使用ARC:

enter image description here

如果您使用ARC,那么您不负责自行释放对象。

我强烈建议您阅读有关ARC的更多信息,您可以从here开始,如果您想构建一个真正的应用程序,这是您应该考虑的最重要的事情。