我正在创建一个应用程序,我需要一个弹出警报,我正在使用此代码:
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”。除了我可以在我的代码中使用的版本之外还有什么吗?
更新: 谢谢大家,我刚刚删除了发布,然后就可以了。
答案 0 :(得分:1)
你没必要 的释放强> ARC启用项目中的任何对象,因为ARC本身负责从内存中释放对象。
虽然,如果你想在你的代码中使用release,或者你想在某个特定文件上禁用ARC,那么你可以添加一个标志 的 -fno-objc弧强> 在那个特定的文件上。
答案 1 :(得分:1)
启用Automatic Reference Counting
后,编译器会自动将retain
,release
和autorelease
插入程序中的正确位置。你不再需要担心这一点,因为编译器会为你做这件事。
如果你继续坚持你曾创建过的所有对象,那么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
希望这个帮助