首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谓词困境

谓词困境
EN

Stack Overflow用户
提问于 2016-06-05 18:23:03
回答 1查看 28关注 0票数 1

我想通过for in循环修改一些核心数据实体。获取的对象应该通过谓词进行过滤。但是循环从不触发,因为没有获取任何对象。

我怀疑谓词有问题,尽管我已经仔细检查过了。下面是代码:

代码语言:javascript
复制
NSString *replenishString = @"Replenishment";
NSDate *now = [NSDate date];

NSPredicate *transFRCPredicate = [NSPredicate predicateWithFormat:@"(account == %@) AND ((transDate >= %@) AND (transDate <= %@)) AND (category != %@)",self.detailTransaction.account,self.detailTransaction.transDate,now,replenishString];


NSFetchedResultsController *transactionsToAdjustFRC = [WMMGTransaction MR_fetchAllGroupedBy:@"account" withPredicate:transFRCPredicate sortedBy:@"transDate" ascending:NO];

(...)

    for (WMMGTransaction *transaction in transactionsToAdjustFRC.fetchedObjects)
    {
        NSLog(@"Inside for loop--delta = %@",delta);
        transaction.category = @"Changed +";

        transaction.pointBalance = [transaction.pointBalance decimalNumberByAdding: delta];
        NSLog(@"Inside for loop--pointBalance = %@",transaction.pointBalance);
    }

有什么想法或指导吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-05 19:47:36

在谓词中使用"!=“时要小心:零值将不匹配。包括一个针对零的特定测试:

代码语言:javascript
复制
NSPredicate *transFRCPredicate = [NSPredicate predicateWithFormat:@"(account == %@) AND ((transDate >= %@) AND (transDate <= %@)) AND (category != %@ OR category == nil)",self.detailTransaction.account,self.detailTransaction.transDate,now,replenishString];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37645301

复制
相关文章

相似问题

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