cuốn sách gpt4 ai đã làm

objective-c - setting object = nil and [object release] VS [object release] and object = nil 有什么区别?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 09:00:05 30 4
mua khóa gpt4 Nike

Sự khác biệt giữa hai đoạn mã này là gì:

đối tượng = không;
[giải phóng đối tượng]

对比

[giải phóng đối tượng];
đối tượng = không;

Đó là thực hành tốt nhất?

câu trả lời hay nhất

đối tượng = không; 
[giải phóng đối tượng]

Đừng làm thế.Bạn đang gửi một đối tượng không có tác dụng gì giải phóng thông tin. Nhưng đối tượng mà đối tượng của bạn đề cập đến vẫn còn trong bộ nhớ vì nó chưa bao giờ nhận được giải phóng 消息。

[giải phóng đối tượng]; 
đối tượng = không;

Tại đây bạn thả đối tượng ra và để thuận tiện và an toàn bạn đặtkhôngnhư tài liệu tham khảo của nó. Vì vậy, bạn có thể gọi (tất nhiên là do nhầm lẫn :-)) bất kỳ phương thức nào trên đối tượng đó và ứng dụng sẽ không gặp sự cố.

Nhưng nếu bạn sử dụng các thuộc tính được giữ lại@property(không nguyên tử, giữ lại), gọi:

self.object = nil;

Tương đương với cách gọi:

[giải phóng đối tượng]; 
đối tượng = không;

Về mục tiêu-c - sự khác biệt giữa cài đặt object = nil và [phát hành đối tượng] VS [phát hành đối tượng] và object = nil là gì? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/8150896/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress