ios – 通过字符串属性的第一个字母过滤数组

我有一个NSArray与具有name属性的对象.

我想按名称过滤数组

Nsstring *alphabet = [agencyIndex objectAtIndex:indexPath.section];
    //---get all states beginning with the letter---
    nspredicate *predicate =
    [nspredicate predicateWithFormat:@"SELF beginswith[c] %@",alphabet];
    NSMutableArray *listSimpl = [[NSMutableArray alloc] init];
    for (int i=0; i<[[Database sharedDatabase].agents count]; i++) {
        Town *_town = [[Database sharedDatabase].agents objectAtIndex:i];
        [listSimpl addobject:_town];
    }
    NSArray *states = [listSimpl filteredArrayUsingPredicate:predicate];

但是我收到一个错误 – “不能做一个不是字符串的东西的子串操作(lhs =< 1,Arrow> rhs = A)”

我该怎么做?我想过滤名字中第一个字母的数组为’A’.

解决方法

尝试以下代码
nspredicate *pred = [nspredicate predicateWithFormat:@"SELF like %@",yourName];
NSArray *filteredArr = [yourArray filteredArrayUsingPredicate:pred];

编辑:

nspredicate模式应该是:

nspredicate *pred =[nspredicate predicateWithFormat:@"name beginswith[c] %@",alphabet];

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...