使用 NSPredicate 按日期过滤 coredata 不返回任何内容

2023-12-13

嗨,我是这个核心数据的新手。我有两个实体 CategoryList 和 ExpenseList。 CategoryList由两个属性组成
1.日期(nsdate)
2.类别(nsstring)
在与 ExpenseList 的许多关系中,关系名称为“expenseList” 费用清单包括 1.花费金额(浮动)。
我只是想了解 coredata 中的关系特征。当我尝试创建一个 nspredicate 来按特定日期过滤数据时,它什么也不返回。我只想过滤 CategoryList 实体中特定日期的类别属性内容。这是我的代码

-(void) callingByDate
{


NSManagedObjectContext *managedObjectContext = [self managedObjectContext];

NSEntityDescription *categoryL = [NSEntityDescription entityForName:@"CategoryList" inManagedObjectContext:managedObjectContext];

NSSortDescriptor *dateSort = [[NSSortDescriptor alloc]initWithKey:@"date" ascending:YES];

NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:dateSort, nil];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"dates == %@",date];



NSFetchRequest *dateFetch = [[NSFetchRequest alloc]init];



[dateFetch setSortDescriptors:sortDescriptors];

[dateFetch setEntity:categoryL];

[dateFetch setPredicate:predicate];



NSMutableArray *results = [[managedObjectContext executeFetchRequest:dateFetch error:nil] mutableCopy];

if([results count] > 0)

    NSLog(@"results found");

else

    NSLog(@"no results found");

}

当我在 nslog 区域执行此代码时,它显示“未找到结果”。我不明白为什么。提前致谢

这是我的代码,用于查找一天的结束和开始

-(NSDate *)beginningOfDay:(NSDate *)date;

 {

 NSDate *dat = [NSDate date];

 NSCalendar *cal = [NSCalendar currentCalendar];

 NSDateComponents *components = [cal components:( NSMonthCalendarUnit | NSYearCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:dat];

[components setHour:0];

[components setMinute:0];

[components setSecond:0];



return [cal dateFromComponents:components];





 }



-(NSDate *)endOfDay:(NSDate *)date;

{

NSDate *dat = [NSDate date];

NSCalendar *cal = [NSCalendar currentCalendar];

NSDateComponents *components = [cal components:( NSMonthCalendarUnit | NSYearCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:dat];

[components setHour:23];

[components setMinute:59];

[components setSecond:59];



return [cal dateFromComponents:components];

当我 nslog 时,显示的结果是 开始日-2013-04-30 18:30:00 +0000 日结束 -2013-05-01 18:29:59 +0000


date实际上是一个时间戳,所以这样做==它只会返回具有确切时间戳的项目。

要获取特定日期的所有条目,您需要获取NSDate一天的开始(startOfDay),以及NSDate一天结束时(endOfDay) 然后修改谓词以使用以下方法获取这两个值之间的日期:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"dates >= %@ AND dates >= %@", startOfDay, endOfDay];

计算startOfDay and endOfDay您可以自己手动完成,也可以使用其他一些库来计算它,例如https://github.com/erica/NSDate-Extensions.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NSPredicate 按日期过滤 coredata 不返回任何内容 的相关文章

  • 在 Mac OS 10.14.2 上的 Python 3.7 中安装 JPype1 时出错

    我在系统中安装 JPype1 时遇到错误 我正在使用Python 3 7 JPype1 是 Jaydebeapi 的依赖项 pip install Jpype1 以下是错误消息 Collecting jpype1 Using cached
  • Health 处理多个步骤源的方式与 HealthKit 不同——swift

    我的 Swift iOS 应用程序与 HealthKit 连接 向用户显示他们当天到目前为止已经走了多少步 在大多数情况下 这是成功的 当步数的唯一来源是 iPhone 内置计步器功能记录的步数时 一切正常 并且我的应用程序显示的步数与健康
  • 如何设置 NSAttributedString 的字体大小

    编辑 这已被标记为重复 但正如我在下面所述 我正在寻找一个 Swift 解决方案 我发现的所有内容都是用 Objective C 编写的 我正在尝试将 HTML 转换为 NSAttributedString 但不知道如何设置字体样式和大小
  • iOS - 当应用程序被终止时处理静默推送通知

    我目前在 iOS 中遇到推送通知问题 我的应用程序收到包含标识符的静默推送通知 然后 该标识符用于从创建本地通知的远程服务器获取数据 据我所知 如果用户强制退出应用程序 即通过双击主页按钮并滑动关闭应用程序 则静默推送通知不会传递到 App
  • 将 GestureRecogniser 附加到多个图像视图

    今天我在将相同的手势识别器附加到多个图像视图时遇到了一些奇怪的事情 它仅附加到最后一个视图 换句话说 它只能附加到一个视图 我必须创建多个手势识别器才能满足我的要求 以下是我所做的 我做的对吗 这是将识别器附加到多个图像视图的唯一方法吗 请
  • 在UIView中画线

    我需要在 UIView 中画一条水平线 最简单的方法是什么 例如 我想在 y coord 200 处画一条黑色水平线 我没有使用界面生成器 也许这有点晚了 但我想补充一点 有更好的方法 使用 UIView 很简单 但相对较慢 此方法会覆盖视
  • 隐藏标签栏并删除空格

    有没有办法隐藏选项卡栏并删除剩余的空间 大约 50px I tried self tabBarController tabBar hidden true self extendedLayoutIncludesOpaqueBars true
  • Core Data + CloudKit 无法在其他设备上自动刷新?

    我的 SwiftUI 应用程序与 Core Data CloudKit 一起使用 我可以从 Mac 或 iPhone 将新条目保存到数据库中 该应用程序对所有设备使用完全相同的项目 代码库 唯一的问题是我需要关闭应用程序并重新打开它才能查看
  • 使用 NSXMLParser 在 Swift 中解析分层 XML

    我确实在以我实际可以使用的形式获取分层 XML 值时遇到问题 因此我们将不胜感激 我对 Swift 和 IOS 开发还很陌生 所以说实话我并不完全理解解析器 但我希望在这之后我能理解 下面是我尝试解析的示例 XML 它来自肥皂网络服务 连接
  • 为 CocoaPods 插件设置 Xcode

    我正在尝试设置终端 Xcode 以便正确工作Xcode CocoaPods 插件 https github com kattrali cocoapods xcode plugin 当我从插件运行集成 cocoapods 选项时 我收到一条消
  • UIButton 不响应 UITableViewCell 中的单击事件

    ios 中有一个黑暗巫术阻止我的按钮被点击 如果我不向 uitableviewcell 添加按钮 并且单击该按钮 则会触发该事件 但如果按钮在 uitableviewcell 中 它不会被触发 看起来表 我已经准备好了示例代码 如果你们可以
  • 使用 Swift 导入 aurioTouch 库

    我正在尝试将 Objective C 应用程序转换为 swift 我想导入课程奥里奥触摸 https developer apple com library ios samplecode aurioTouch Introduction In
  • 如何使用 NSUndoManager 支持替换 UITextView 中的文本?

    我希望能够以编程方式替换 UITextView 中的某些文本 因此我将此方法编写为 UITextView 类别 void replaceCharactersInRange NSRange range withString NSString
  • TabBarController:以不同方向定向视图

    我无法保持当前的观点方向 在下面的设置中 我能够将第一个视图控制器锁定为纵向 将第二个视图控制器锁定为横向或纵向 但是 当我向选项卡控制器添加第二个导航控制器 rootviewcontroller 时 整个项目中的所有视图都将变为横向和纵向
  • 加快 SpriteSheet 的 UIImage 创建速度

    我不确定我的标题是否正确 但我不确定我的问题到底在哪里 我需要从 spritesheet 加载 UIImage 数组 然后将其用作 UIImageView 中的动画 spritesheet是用TexturePacker生成的 它生成巨大的图
  • Android 和 iOS 中的应用程序文件大小差异

    通过使用两个应用程序分发服务 Android 市场和 Apple 应用程序商店 我发现了一个谜团 Apple 应用程序的文件大小通常大于 Android 应用程序 我似乎找不到任何对这些差异的解释 而且这似乎是一个未触及的主题 我尝试过分配
  • 推送通知中的设备令牌

    我只想向某些用户发送推送通知 根据我在苹果文档中所经历的内容 注册推送通知的代码是这样的 void applicationDidFinishLaunching UIApplication app other setup tasks here
  • 控制 NSLayoutManager 中自定义文本属性周围的间距

    我有一个习惯NSLayoutManager我用来绘制药丸状标记的子类 我使用自定义属性为子字符串绘制这些标记 TokenAttribute 我会画画没有问题 但是 我需要在范围周围添加一些 填充 TokenAttribute 这样标记的圆角
  • 无效的 Swift 支持 - 文件位置不正确

    我一直在尝试将新版本上传到 iTunes Connect 来更新应用程序 我第一次使用 xCode 6 但收到了一封来自 Apple 的电子邮件 内容如下 亲爱的开发者 我们发现您最近交付的 应用程序 存在一个或多个问题 要处理您的交货 必
  • 将蒙版图像作为 PNG 文件写入磁盘

    基本上 我从网络服务器下载图像 然后将它们缓存到磁盘上 但在这样做之前 我想屏蔽它们 我正在使用每个人似乎都指出的屏蔽代码 可以在这里找到 http iosdevelopertips com cocoa how to mask an ima

随机推荐