Tôi đã nhận thấy một chút nhầm lẫn khi nhìn vào các bit khác nhau của mã cả trong sách và trên web khi nói đến triển khai dealloc. Câu hỏi của tôi là khi sử dụng @property mà sau đây tôi nên sử dụng. Cho đến bây giờ tôi đã sử dụng VERSION_001.dealloc, sử dụng bản phát hành hoặc đặt thành nil cho thuộc tính?
@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSString *type;
@property(nonatomic, retain) NSString *payload;
@property(nonatomic, retain) NSString *orbit;
VERSION 001
- (void)dealloc {
[name release];
[type release];
[payload release];
[orbit release];
[super dealloc];
}
VERSION 002
- (void)dealloc {
[self setName:nil];
[self setType:nil];
[self setPayload:nil];
[self setOrbit:nil];
[super dealloc];
}
Cảm ơn bạn, những gì tôi đã làm sau, được đánh giá cao. – fuzzygoat
Không có vấn đề gì, bất cứ lúc nào, đừng quên chấp nhận câu trả lời :) –
Một lợi thế lớn mà phiên bản 1 có trên phiên bản 2 là nếu một ngày nào đó bạn sửa đổi setter cho một trong các thuộc tính này để thực hiện một số công việc không tầm thường, bạn sẽ không phải chịu các hoạt động hoặc hành vi không chính xác tiềm năng trong phiên bản 1. Phiên bản 2 có thể dễ dàng khiến bạn giới thiệu các lỗi trong mã của bạn mà không nhận ra nó một số ngày xuống đường. – Ryan