Tôi đang cố gắng tạo các phần trong chế độ xem bảng dựa trên bảng chữ cái và sắp xếp các mục nhập theo thứ tự abc trong các phần này.NSPredicate trên NSDictionary
Tôi đã thu thập chữ cái đầu tiên trong mỗi mục nhập của bandsArray trong bandsArrayIndex và bây giờ tôi đang cố gắng sử dụng NSPredicate để đếm số lượng thư có trong mỗi thư.
Tôi đang làm điều này bằng cách theo dõi this guide.
Họ đang sử dụng NSArray và tôi đang sử dụng NSDictionary và dường như không làm cho nó hoạt động. Ai có thể giúp tôi không?
Ứng dụng gặp sự cố khi cố hiển thị chế độ xem với chế độ xem bảng trong đó. Trong Debugger điều khiển các lỗi sau đây được hiển thị:
* Chấm dứt ứng dụng do ngoại lệ uncaught 'NSInvalidArgumentException', lý do: 'Không thể làm một hoạt động chuỗi với cái gì đó không phải là một chuỗi
Đây là mã của tôi
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSString *alphabet = [bandsArrayIndex objectAtIndex:section];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
NSArray *letters = [bandsArray filteredArrayUsingPredicate:predicate];
return [letters count];
}
EDIT: Đây là ban nhạc của tôi sArray.
Tiêu đề
NSMutableArray *bandsArray;
@property (nonatomic, retain) NSMutableArray* bandsArray;
Việc thực hiện
// set array from plist
NSString *path = [[NSBundle mainBundle] pathForResource:@"Bands" ofType:@"plist"];
NSMutableArray* tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
self.bandsArray = tmpArray;
// sort array after name ascending
NSSortDescriptor *nameSorter = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)];
[bandsArray sortUsingDescriptors:[NSArray arrayWithObject:nameSorter]];
Bạn đang rò rỉ bộ nhớ như cái rây khi bạn tạo 'bandsArray '. –
Bạn có thể hiển thị bandsArray của mình không? Nó chỉ là một mảng NSString? Tôi không gặp vấn đề gì với NSPredicate. Nó chỉ là một chi tiết đơn giản. Nếu bandsArray của bạn không phải là NSStrings, bạn nên lọc theo thuộc tính bạn đang tìm kiếm. –