2011-07-26 20 views

Trả lời

4

Không có vấn đề gì. immutableData sẽ được khởi tạo với dữ liệu trong mutData.

10

này là hoàn toàn ổn, và trên thực tế là một trong những ứng dụng chính của dataWithData: -. Để tạo ra một bản sao bất biến của một đối tượng có thể thay đổi *

NSData cũng phù hợp với các NSCopying protocol, ** có nghĩa là bạn có thể thay vào đó hãy sử dụng [mutData copy]. Sự khác biệt là dataWithData: trả về một đối tượng bạn không sở hữu (nó được tự động phát hành), trong khi per memory management rules, copy tạo một đối tượng có bộ nhớ mà bạn chịu trách nhiệm. dataWithData: tương đương có hiệu lực với [[mutData copy] autorelease].

Vì vậy, bạn có thể chọn dataWithData: hoặc copy, tùy thuộc vào yêu cầu của bạn trong suốt thời gian tồn tại của đối tượng kết quả.


* Điều này cũng áp dụng cho các phương pháp tương tự trong các lớp khác có phân lớp có thể thay đổi, ví dụ: +[NSArray arrayWithArray:].

** Xem thêm "Object Copying" trong Hướng dẫn về năng lực cốt lõi.

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