6

Tôi biết đã có nhiều lần viết lên 'mạnh' so với 'yếu'. Nhưng tất cả các tài liệu đều nói rằng cả hai đều là 100% từ đồng nghĩa với nhau và bạn có thể sử dụng 'mạnh' thay thế 'giữ lại' và ngược lại.Mạnh mẽ và giữ lại trong ARC

Câu hỏi của tôi là: nếu chúng giống nhau, tại sao Apple lại giới thiệu từ khóa 'mạnh' mới? Tôi đã thử nghiệm cả hai trong một dự án mẫu, và cả các thuộc tính tài sản 'mạnh' và 'giữ lại' xuất hiện để làm điều tương tự. Bạn không nghĩ rằng nếu Apple giới thiệu thuộc tính 'mạnh', nó sẽ không cho phép sử dụng thuộc tính 'giữ lại'? Hay tôi đang thiếu một cái gì đó?

+1

http://stackoverflow.com/questions/8927727/objective-c-arc-strong-vs-retain-and-weak-vs-assign –

+1

'strong' và' retain' khá giống nhau, nhưng bởi vì trong ARC bạn không cần phải lo lắng về các đối tượng _retaining-releasing_, 'strong' là hợp lý hơn nhiều cho một thuộc tính trong ARC ... như trong MRR,' retain' có tương đương ngược với 'release' hoặc' autorelease', trong môi trường ARC 'strong' không có tương đương ngược lại, đây là lý do tại sao hợp lý chính xác hơn để sử dụng' strong' thay vì 'retain' trong ARC; nếu điều đó có ý nghĩa với bạn. – holex

+0

@Katoch Tôi đã đọc rằng nó trỏ đến cùng một điều mạnh = giữ lại mà tôi hiểu. Nhưng câu hỏi là lý do tại sao tạo ra một nghi ngờ trong tâm trí của nhà phát triển (mặc dù tôi luôn sử dụng mạnh) vì việc giữ lại là một thứ liên quan đến quản lý bộ nhớ thủ công, họ nên hoàn toàn dừng việc sử dụng giữ lại trong các dự án ARC, tại sao nó vẫn có vị trí của nó trong ARC ? – IOSCODER

Trả lời

9

retain là phần còn lại từ các ngày trước ARC, nơi bạn sẽ tăng/giảm một đối tượng retain count tùy thuộc vào việc bạn muốn nó treo trong bộ nhớ. Rõ ràng với ARC bạn không còn phải lo lắng về điều này và tôi nghi ngờ rằng retain có thể chỉ đơn giản là đã được để lại cho dễ sử dụng cho các lập trình viên c-mục tiêu kỳ cựu hơn ra khỏi đó.

Từ khóa phổ biến nhất với vòng cung là: (strong, weak, nonatomic, readonly, copy).

+0

có cuối cùng tôi nghĩ rằng chúng tôi có thể đưa ra lời giải thích này. – IOSCODER

Các vấn đề liên quan