gpt4 book ai didi

ios - 从值包含字符串的核心数据中获取

转载 作者:行者123 更新时间:2023-12-01 18:41:53 25 4
gpt4 key购买 nike

我有一个称为形式的核心数据表,其中包含一个名为 objectids的属性,其中包含带有ID的逗号分隔字符串。 (它也可以只包含一个ID)
例如

objectids = "90"          // one id
objectids = "91,23,44" // multiple ids

我收到一个 对象ID ,我想匹配它,并查看它是否存在于任何 表单-> 对象ID 条目中。

重要的是它只匹配整个字符串。即。 对象ID : 1 应该与 对象ID 不匹配: 91、23、44 等。

这是我的代码片段。
-(NSDictionary*)readForm:(NSString*)objectid
{

...

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Forms"];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"added_date" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[fetchRequest setReturnsObjectsAsFaults:NO];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"userid == %@ AND objectids == %@ AND active == %@", user.userid, objectid, @"yes"];

// *** in this fetchRequest I want to include some snippet of code to:
// *** Match string, but only whole string seperated by commas, unless it only has one value in which case it contains no commas.

NSError *err = nil;
NSArray *results = [managedObjectContext executeFetchRequest:fetchRequest error:&err];
if([results count])
{
...
}
}

我希望这是可以理解的。

我根本不了解 objective-c ,甚至不知道要搜索什么术语。

任何帮助表示赞赏!

最佳答案

对于字符串比较,您可以使用LIKE而不是==,并且对于bool,请使用文字@YES,因此谓词为:

fetchRequest.predicate = [NSPredicate predicateWithFormat:@"userid == %@ AND objectids LIKE %@ AND active == %@", user.userid, objectid, @YES];

对于更复杂的字符串比较,可以使用predicateWithBlock:

编辑:阅读您的进一步评论,我认为此问题使用正则表达式可以回答完全相同的问题: Form NSPredicate from string that contains id's

关于ios - 从值包含字符串的核心数据中获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631144/

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