启用ARC时无法使用版本

时间:2014-01-02 06:25:01

标签: objective-c automatic-ref-counting

我正在创建一个应用程序,我需要一个弹出警报,我正在使用此代码:

UIAlertView *alert = [[ UIAlertView alloc] initWithTitle:@"This is locked" message:@"start with the unlocked content first" delegate:nil cancelButtonTitle:@"Okay got it" otherButtonTitles:nil];
[alert show];
[alert release];

问题是我不能在ARC上使用“release”。除了我可以在我的代码中使用的版本之外还有什么吗?

更新: 谢谢大家,我刚刚删除了发布,然后就可以了。

4 个答案:

答案 0 :(得分:1)

你没必要         的释放 ARC启用项目中的任何对象,因为ARC本身负责从内存中释放对象。

虽然,如果你想在你的代码中使用release,或者你想在某个特定文件上禁用ARC,那么你可以添加一个标志         的 -fno-objc弧 在那个特定的文件上。

答案 1 :(得分:1)

启用Automatic Reference Counting后,编译器会自动将retainreleaseautorelease插入程序中的正确位置。你不再需要担心这一点,因为编译器会为你做这件事。

如果你继续坚持你曾创建过的所有对象,那么ARC永远无法释放它们。因此,无论何时创建新对象,您仍需要考虑谁拥有它以及对象应该存在多长时间。

答案 2 :(得分:0)

使用ARC时无需释放只需删除[alert relese];,而不是代码正常工作。

UIAlertView *alert = [[ UIAlertView alloc] initWithTitle:@"This is locked" 
message:@"start with the unlocked content first" delegate:nil 
cancelButtonTitle:@"Okay got it" otherButtonTitles:nil];

[alert show];

答案 3 :(得分:0)

不需要ARC发布,将由编译器处理。当我开始时我发现自己也很有点棘手,但是拿这个很棒的教程来更好地理解它,

http://www.raywenderlich.com/5677/beginning-arc-in-ios-5-part-1 http://www.raywenderlich.com/5677/beginning-arc-in-ios-5-part-2

希望这个帮助