0
A
回答
5
EXT_BAD_ACCESS
很可能是因为您的对象引用不再有效。
1
代码可能会崩溃。但是大部分时间它也可能工作。
你制动一个规则,你可能会被抓住。但你也可以放弃它,生活在不断担心的事情中,以后可能会被抓住。
0
获取EXT_BAD_ACCESS。因为你已经释放它,现在试图再次释放。
您的对象引用不再有效。
0
一旦对象的保留计数达到0,它就会被释放,并且所有进一步访问它的尝试都将导致随机行为。
如果使用autorelease来代替,保留计数不会被降低,并且该对象将被放入autoreleasepool中。一旦达到autoreleasepool drain命令,该对象只会降低其保留计数,通常在更广泛的范围内以更高的级别完成。如果您在autoreleasepool耗尽后确实需要该对象,则应在执行drain之前保留该对象,否则它将具有与第一段中完全相同的行为。
1
有在这里做出一个重要的区别:你无法释放对象再次,因为对象不再存在。如果您向变量(即release
或任何其他消息)发送另一个消息,则行为未定义,因为该变量不再指向有效的对象。 (可能变量现在指向的地址将被重用于不同的对象,在这种情况下,它可能不会崩溃,但当然这仍然是一个错误。)
相关问题
- 1. 如果我释放对象,释放对象所属的池后会发生什么情况?
- 2. 如果您尝试释放已释放的对象,会发生什么情况?
- 3. 什么时候释放了一个自动释放的对象?
- 4. 对象在释放后没有释放
- 5. 这个对象为什么被释放?
- 6. 一个对象被释放
- 7. 为什么我应该[对象释放];对象=无;何时释放一个对象?
- 8. 什么时候会释放一个autorelease
- 9. 释放原生对象
- 10. 当你尝试释放()已经释放c内存时会发生什么?
- 11. 释放对象
- 12. 返回后释放对象?
- 13. 我什么时候可以释放一个对象?
- 14. 在Objective-c中释放对象时实际发生了什么?
- 15. 当我释放画布时,DC会发生什么?
- 16. 释放或自动释放的对象
- 17. Viewcontroller释放我的对象
- 18. 对象被释放 - 为什么?哪里?
- 19. 为什么我得到“发送释放的对象错误”?
- 20. 如果调用对象被释放,调度线程会发生什么?
- 21. 双释放自动释放对象不会崩溃
- 22. 释放自动释放的字符串对象不会崩溃
- 23. 释放PyTuple对象
- 24. 的释放对象
- 25. 释放ABMultiValueRef对象
- 26. 对象不释放
- 27. 在父对象被释放后延迟释放伊娃尔
- 28. 即使我释放它后,互斥似乎也不会释放
- 29. 释放一个对象是否会销毁该对象?
- 30. 什么时候应该在dealloc中释放一个对象?
代码,编译,请自己看看? – scalbatty 2011-04-13 11:43:42
@luzal:你离rtfm不远......我认为这不是一个好主意。 – 2011-04-13 12:10:26