don*_*ile 2 iphone memory-management objective-c objective-c-runtime
示例:我有一个视图控制器并摆脱它.但是仍然有一个变量保存它的内存地址.访问它会导致EXEC_BAD_ACCESS.当然.但是:有没有办法检查该变量是否仍然有效?即如果它仍然指向内存中存在的东西?
bbu*_*bum 18
你需要再次阅读:
简而言之,如果你想要坚持下去就必须 坚持下去retain.
如果你想要一些东西消失而你之前保留了它,你必须release或autorelease它.
你必须永远不要dealloc直接打电话(除了[super dealloc];你的每一个dealloc方法的结尾).
你必须永远不要 release或autorelease你没有的对象retain.
请注意,某些方法确实会返回您必须保留的对象release.如果你alloc是一个类的实例,那意味着一个retain.如果您copy和实例,则保留副本.
如果您想要使用该retainCount方法,请不要.它没用.仅将保留计数视为增量; 如果添加,则必须减去,但绝对值是应忽略的实现细节.
(换句话说,即使有方法可以明确地检查对象的有效性 - 但事实并非如此 - 这将是错误的答案.)
哦,并使用Xcode中的Build and Analyze功能.除了其他方面,它确定了很好的 - 但不是很完美 - 识别内存管理问题的工作.