2010-07-28 12 views

Trả lời

17

Khi những người khác đã chỉ ra, NSArray/NSMutableArray là những gì bạn đang tìm kiếm.

Đến từ thế giới Java, bạn có thể thấy rằng các dịch vụ thu thập của Cocoa cảm thấy khá kín đáo. Trong thực tế, chức năng khá rộng. NSArray, NSDictionaryNSSet, trên thực tế, class clusters, có nghĩa là API công khai là lớp "trừu tượng". Khi bạn khởi tạo một trong các bộ sưu tập, những gì bạn nhận được là, trên thực tế, một triển khai cụ thể được điều chỉnh cho dữ liệu bạn cung cấp. Các triển khai này cũng có thể thay đổi triển khai cụ thể trong thời gian chạy nếu dữ liệu thay đổi (ví dụ: dữ liệu tăng kích thước). Điều này là tất cả có thể do thời gian chạy động của Objective-C nhiều hơn so với việc gõ tĩnh (và bảo mật) của Java sẽ cho phép. Chiến lược cụm lớp do đó ẩn chứa nhiều triển khai, ví dụ: giao diện java.util.List, phía sau một API duy nhất.

Khung cacao có phần giới hạn trong cấu trúc dữ liệu kết hợp (tức là các cấu trúc được xây dựng trên các mảng "bộ nguyên thủy", bộ và từ điển). Bạn có thể thấy rằng, mã nguồn mở tuyệt vời CHDataStructures lấp đầy trong nhiều khoảng trống.

+0

Tôi đang tìm kiếm cùng một thứ như Julio và nhìn thấy rất nhiều câu trả lời cho biết "chỉ cần nhắm mắt lại và sử dụng NS \ * Array ...". Nhưng thường thì bạn thực sự muốn sử dụng rõ ràng danh sách được liên kết, ví dụ: để chèn/xóa liên tục bất kỳ mục nào (NS \ * Array không đảm bảo điều này). Chọn cấu trúc dữ liệu phù hợp dựa trên mẫu truy cập đã biết của bạn là nền tảng cho hiệu suất. Là một người mới đến phát triển iOS, tôi không hiểu tại sao Cocoa dường như lấy đi quyết định này từ lập trình viên? –

15

NSMutableArray. Bạn có thể thêm các đối tượng vào nó khi cần thiết.

+0

cảm ơn hoàn hảo! cảm ơn! – Julio