我是否必须在类的release
方法中为非指针变量调用dealloc
?
e.g。
@interface myClass : NSObject {
BOOL isDirty; // do i have to release this?
NSInteger hoursSinceStart; // and this?
NSDate *myDate; // i will release the pointer in dealloc
}
@property (assign, nonatomic) NSInteger hoursSinceStart; // property to release?
@property (assign, nonatomic) BOOL isDirty; // property to release?
@end
答案 0 :(得分:5)
两件事:
您只需要保留和释放对象。 BOOL和NSIntegers不是对象,它们是原始的。
您通常不应为任何release
属性调用assign
,因为您尚未保留它 - 当然assign
是唯一有意义的类型像NSIntegers或BOOL这样的原语,因为你不能保留它们。
答案 1 :(得分:0)
您将释放扩展NSObjects的对象(或实现NSObject协议) 请阅读http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html以更好地了解内存管理。
答案 2 :(得分:0)
您无需释放BOOL或NSInteger。事实证明,NSInteger只是int的typedef(通过is it necessary to release a NSInteger in iphone?)