2011-11-12 27 views
7

Tôi có một đối tượng tùy chỉnh như:Làm cách nào để sắp xếp theo thứ tự bảng chữ cái một trường đối tượng tùy chỉnh trong một mảng NSMutable?

#import <Foundation/Foundation.h> 

@interface Store : NSObject{ 
    NSString *name; 
    NSString *address; 
} 

@property (nonatomic, retain) NSString *name; 
@property (nonatomic, retain) NSString *address; 

@end 

Tôi có một mảng của NSMutableArray (storeArray) chứa hàng các đối tượng:

store1 = [[Store alloc] init]; 
store1.name = @"Walmart";  
store1.address = @"walmart address here.."; 

store2 = [[Store alloc] init]; 
store2.name = @"Target"; 
store2.address = @"Target address here.."; 

store3 = [[Store alloc] init]; 
store3.name = @"Apple Store"; 
store3.address = @"Apple store address here.."; 

//add stores to array 
storeArray = [[NSMutableArray alloc] init]; 
[storeArray addObject:store1]; 
[storeArray addObject:store2]; 
[storeArray addObject:store3]; 

Câu hỏi của tôi là làm thế nào tôi có thể sắp xếp các mảng bằng tên cửa hàng? Tôi biết tôi có thể sắp xếp một mảng theo thứ tự bảng chữ cái bằng cách sử dụng dòng này:

[nameOfArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 

Làm cách nào để áp dụng tên cửa hàng của lớp Lưu trữ?

Trả lời

11

Regexident's answer được dựa trên NSArrays, tương ứng tại chỗ sắp xếp cho NSMutableArray sẽ -sortUsingDescriptors:

[storeArray sortUsingDescriptors: 
        [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" 
                      ascending:YES 
                      selector:@selector(caseInsensitiveCompare:)]]]; 

Bây giờ, storeArray tự nó sẽ được sắp xếp.

+1

Cảm ơn người đàn ông. Thật kỳ lạ khi họ có 2 phương pháp với kết quả khác nhau – Lonkly

+1

ý bạn là gì? Một là để sắp xếp tại chỗ, một tạo ra một mảng mới. Cả hai phiên bản đều có trường hợp sử dụng riêng. – vikingosegundo

+1

Cảm ơn bạn rất nhiều ... hầu hết các câu trả lời đều cho thấy cách sắp xếp 'NSArrays' mặc dù nó được yêu cầu cho mảng' NSMutableArray'. Điều này làm việc như một nét duyên dáng :) – Vidhi

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