gpt4 book ai didi

objective-c - 使用 InterfaceBuilder 在 NSTableView 和 CoreData 中按 DATE 搜索记录

转载 作者:行者123 更新时间:2023-12-03 17:48:41 25 4
gpt4 key购买 nike

我有一个 NSTableView,它使用 ArrayController 从 CoreData 中提取数据。在我的表单中,我也有搜索字段。

搜索表单在以下情况下工作正常:

  1. 我选择搜索字段,并在谓词下的绑定(bind)检查器中将搜索字段绑定(bind)到用于获取 nstableview 中的数据的数组 Controller 。

  2. 在谓词格式字段中我添加

    customerName contains[cd] $value 或 customerWebsite contains[cd] $value

现在,无论是搜索 customerName (STRING) 还是 customerWebsite (STRING),我都能得到很好的结果。

但是,如果我用包含 DATE 的字段更改字段,我的搜索将不起作用。例如,以下注释不起作用:

contractExpiresOn contains[cd] $value
contractExpiresOn == $value
contractExpiresOn = $value
contractExpiresOn >= $value
contractExpiresOn > $value
contractExpiresOn %LIKE $value
//contractExpiresOn is DATE

当我使用上述谓词格式进行搜索时,应用程序不会崩溃,但不会返回任何结果,即使例如我有以 0 开头的日期,只要我在搜索字段中输入 0,NSTableView 就是空的.

任何人都可以告诉我如何通过界面生成器使我的搜索与日期一起使用,或者如果不可能,我该如何以编程方式执行此操作。

最佳答案

您无法将日期与字符串进行比较,您必须进行一些编程。在 NSDate 上创建一个类别并添加将日期转换为字符串的方法。例如:

@implementation NSDate(Search)

static NSDateFormatter *searchDateFormatter = nil;

- (NSString *)searchString {
if (!searchDateFormatter) {
searchDateFormatter = [[NSDateFormatter alloc] init];
searchDateFormatter.dateStyle = NSDateFormatterShortStyle;
searchDateFormatter.timeStyle = NSDateFormatterNoStyle;
}
return [searchDateFormatter stringFromDate:self];
}

@end

谓词格式为birthday.searchString contains $value

关于objective-c - 使用 InterfaceBuilder 在 NSTableView 和 CoreData 中按 DATE 搜索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36075515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com