Tôi biết đây là một câu hỏi cũ nhưng đây là một khả năng khác, tùy thuộc vào những gì bạn cần.
Apple cung cấp cách để thực hiện việc này - Key-Value Coding Collection Operators.
Toán tử đối tượng cho phép bạn hành động trên bộ sưu tập. Trong trường hợp này, bạn muốn:
@distinctUnionOfObjects
Nhà điều hành @distinctUnionOfObjects trả về một mảng chứa các đối tượng khác nhau trong các tài sản theo quy định của con đường chính ở bên phải của các nhà điều hành.
NSArray *distinctArray = [arrayWithDuplicates
valueForKeyPath:@"@distinctUnionOfObjects.name"];
Trong trường hợp của bạn, tuy nhiên, bạn muốn toàn bộ đối tượng. Vì vậy, những gì bạn phải làm là hai lần: 1) Sử dụng @distinctUnionOfArrays
để thay thế. Ví dụ. Nếu bạn có các đối tượng tùy chỉnh này đến từ các bộ sưu tập khác, hãy sử dụng @distinctUnionOfArray.myCollectionOfObjects
2) Thực hiện isEqual:
trên các đối tượng đó để trả lại nếu chúng.tên của đều bình đẳng
Nguồn
2014-07-11 17:42:04
Are các mục trong một container Objective-C như NSArray, hoặc C/C++ (ví dụ, std :: vector hoặc một mảng C)? –
lý do tại sao thẻ C? –
xin lỗi đã xóa thẻ, mảng c mục tiêu của nó bằng các đối tượng tùy chỉnh ... "name" là một trong các biến thành viên của nó, tôi muốn lọc dựa trên giá trị "tên" này. –