Tôi đang đọc về Mã hóa và Giải mã và tôi nhận thấy rằng đôi khi mọi người bỏ lỡ phần còn lại, tôi cũng nhận thấy rằng việc giữ lại đôi khi được sử dụng trên một số biến thể nhưng không được sử dụng cho những người khác. Tôi có thể yêu cầu ...Sử dụng giữ lại trong initWithCoder?
(1) Mục đích của việc lưu giữ này là gì và tại sao đôi khi không cần thiết?
(2) Việc sử dụng các khoản giữ lại có nghĩa là tôi cần khớp với bản phát hành không và nếu có?
- (id) initWithCoder: (NSCoder *) decoder {
name = [[decoder decodeObjectForKey: @"CardName"] retain];
email = [[decoder decodeObjectForKey: @"CardEmail"] retain];
}
hoặc
- (id) initWithCoder: (NSCoder *) decoder {
name = [decoder decodeObjectForKey: @"CardName"];
email = [decoder decodeObjectForKey: @"CardEmail"];
}
gary
Rất có thể, các mẫu mã bạn thấy không rõ ràng giữ lại đối tượng đã giải mã đang sử dụng các phương thức setter để xác nhận quyền sở hữu. – Chuck