【发布时间】:2011-03-19 21:17:51
【问题描述】:
问题 #1:作为一项规则,如果我不需要,我从不释放对象。假设 stringWithUTF8String 本身有一个 autorelease,我不必执行“return [... autorelease]”,对吧?
-(NSString*)nonNullDBString:(const unsigned char*)value {
if(value == nil) {
return @"";
} else {
return [NSString stringWithUTF8String:(char *)value];
}
}
问题 #2:在我的班级中,我有一个属性:“const uint8_t *bytes;”。在 dealloc 方法中我必须调用“bytes = nil;”或“free(bytes);”,还是什么都没有?
问题#3:对于我的类中的@property(nonatomic, retain) 变量,dealloc'ing 的最佳做法是什么,是“self.foo = nil;”吗?或“[foo release](我现在在做什么)”。此外,我不想搞乱 KVO 问题,不管它们是什么......
【问题讨论】:
标签: iphone objective-c ios