Khá nhiều người dường như sử dụng một macro nhưChúng ta có thực sự cần một macro phát hành an toàn không?
#define SAFE_RELEASE(X) [X release]; X = nil;
(trong đó có tôi).
Tôi đã đánh giá lại lý do tại sao tôi đang sử dụng nó và muốn đặt một số ý kiến.
Mục đích (tôi nghĩ) để sử dụng macro này là để nếu bạn đã vô tình sử dụng đối tượng của bạn sau khi phát hành nó thì bạn sẽ không có được một ngoại lệ truy cập xấu vì Objective-C sẽ khá vui vẻ bỏ qua nó khi đối tượng là nil.
Tôi cho rằng điều này có khả năng che giấu một số lỗi không rõ ràng. Có lẽ nó sẽ thực sự là thích hợp hơn cho chương trình sụp đổ khi bạn cố gắng sử dụng X một lần nữa. Bằng cách đó trong quá trình thử nghiệm, bạn có thể tìm thấy vấn đề và cải thiện mã.
Macro này có khuyến khích lập trình lười biếng không?
Suy nghĩ?
Phần có liên quan trong [FAQ] (http://stackoverflow.com/faq) cho các câu hỏi không nên hỏi ở đây. - 'Không có vấn đề thực tế cần được giải quyết: "Tôi tò mò nếu người khác cảm thấy như tôi."' – Abizern
Đủ công bằng, nhưng đó là vấn đề tôi đang gặp phải. Vấn đề là tôi có nên tiếp tục sử dụng macro này không? Có lý do chính đáng nào để sử dụng nó mà tôi không biết? – Ian1971