2010-08-12 31 views
5

Tôi muốn đặt câu hỏi về mục tiêu C. Khi tôi nghiên cứu thư viện từ trang web của nhà phát triển Apple. Tôi luôn thấy rằng có một số phân lớp được gọi là "có thể thay đổi". Ví dụ, NSArray và NSMutableArray. Ý nghĩa của từ này là gì. Có một số ý nghĩa đặc biệt? Bất cứ ai có thể cho tôi biết? Cảm ơn bạn.Ý nghĩa của "biến đổi" trong mục tiêu C là gì?

Trả lời

4

Điều đó có nghĩa là bạn có thể thay đổi giá trị của nó. Nếu bạn nhìn vào tài liệu NSMutableArray, bạn sẽ thấy nó định nghĩa các phương thức bổ sung như -addObject:. NSArray tự nó không có (và do đó có thể hiệu quả hơn/mất ít bộ nhớ hơn khi triển khai).

Cũng lưu ý, nếu bạn gọi [myMutableArray copy] bạn sẽ nhận được một bản sao không thể thay đổi của nó (mà bạn sau này phải release0. Và tương tự có -mutableCopy.

1

Mutable có nghĩa là bạn có thể thay đổi nó. Nhìn vào sự khác biệt giữa AddObject trong NSMutableArray và arrayByAddingObject trong NSArray

1

Từ Objective-C Beginner's Guide nó khẳng định câu trả lời cho câu hỏi cụ thể của bạn.

có hai loại mảng (và của thường là hầu hết các lớp dữ liệu theo định hướng Foundation ) NSArray và NSMutableArray. Như tên cho thấy, Có thể ẩn là có thể thay đổi, NSArray thì không. Điều này có nghĩa là bạn có thể thực hiện một NSArray nhưng một lần bạn có bạn không thể thay đổi độ dài.

lưu ý công nghệ này cũng có nghĩa bạn có thể thay đổi chiều dài của một mảng có thể thay đổi sau khi mảng đã được tạo.

Nói chung mutability stems from these meanings. Điều này sẽ giúp cung cấp một sự hiểu biết rộng hơn cho khi bạn gặp nó ở nơi khác.

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