首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Objective中用NSPredicate实现自定义数据类的滤波器阵列

在Objective中用NSPredicate实现自定义数据类的滤波器阵列
EN

Stack Overflow用户
提问于 2016-04-25 05:23:52
回答 2查看 1.3K关注 0票数 0

我有一个名为DataClass的自定义数据类,这里有详细信息。

代码语言:javascript
复制
@interface DataClass : NSObject

@property (assign,nonatomic)NSInteger invoiceID;
@property (assign,nonatomic)NSInteger anInvoiceID;
@property (strong,nonatomic)NSString *customerName;
@property (strong,nonatomic)NSString *departmentName;
@property (strong,nonatomic)NSString *typeNumberOfInvoice;
@property (strong,nonatomic)NSString *invoiceDate;
@property (strong,nonatomic)NSString *stockNumber;
@property (strong,nonatomic)NSString *vehicleDetail;
@property (strong,nonatomic)NSString *rONumber;
@property (assign,nonatomic)NSInteger amount;
@property (strong,nonatomic)NSString *color;
@property (strong,nonatomic)NSString *year;
@property (strong,nonatomic)NSString *location;
@property (strong,nonatomic)NSString *carVinNumber;
@property (strong,nonatomic)NSString *dealership;
@property (strong,nonatomic)NSString *technician;
@property (strong,nonatomic)NSData *imageData;
@property (strong, nonatomic)NSMutableArray *arrayOfLocations;

在我的ViewController类中,我有一个文本字段,在该字段中,我接受输入并根据文本显示显示。我有一个NSMutableArray,名叫arrayOfData和filteredDataArray。arrayOfData包含上述DataClass的对象,但当我尝试使用以下代码执行此操作时,就会出错。

“所有或任何运算符的左手侧必须是NSArray或NSSet。”

代码语言:javascript
复制
     NSPredicate *aToZPredicate =
    [NSPredicate predicateWithFormat:@"ANY invoiceID CONTAINS[cd] %@", searchText];
    filteredDataArray = [arrayOfData filteredArrayUsingPredicate:aToZPredicate];
    [_tableView reloadData];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-25 05:30:44

如果您正在与Integer进行比较,请不要使用包含。与等号比较

代码语言:javascript
复制
NSPredicate *aToZPredicate =
        [NSPredicate predicateWithFormat:@"invoiceID == %d", [searchText intValue]];
        filteredDataArray = [arrayOfData filteredArrayUsingPredicate:aToZPredicate];
        [_tableView reloadData];
票数 2
EN

Stack Overflow用户

发布于 2016-04-25 05:29:42

尝尝这个

代码语言:javascript
复制
NSPredicate *aToZPredicate =
[NSPredicate predicateWithFormat:@"CAST(SELF.invoiceID, 'NSString') contains[cd] %@", searchText];
filteredDataArray = [arrayOfData filteredArrayUsingPredicate:aToZPredicate];
[_tableView reloadData];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36832575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档