gpt4 book ai didi

iphone - 如何在 Core Data 中使用二进制标志?

转载 作者:行者123 更新时间:2023-12-03 18:18:18 28 4
gpt4 key购买 nike

我的 Core Data 数据库中有一个 int32 属性。我使用这个 int 作为 enum 位字段。

是否可以创建一个NSPredicate来基于二进制查询项目这个 int 的值?类似于 @"bitFieldAttribute & 0x0001"

我还想知道这是否可以使用二进制类型属性实现?

最佳答案

NSPredicate 可以处理它,但我不确定 CoreData 是否会接受它作为在数据存储上执行的有效谓词。将按位运算符转换为 SQL 查询时可能会遇到问题(如果您使用的是 SQLite 后备存储)。您只需尝试一下即可。

但是,语法正是您所期望的:

NSPredicate * p = [NSPredicate predicateWithFormat:@"(3 & 1) > 0"];
NSLog(@"%@", p);
NSLog(@"%d", [p evaluateWithObject:nil]);

日志:

3 & 1 > 0
1

至于在二进制类型的属性上执行此操作(即定义为data,对吗?),这可能行不通。位运算符只有在对整数进行操作时才真正有意义(据我所知),因此在 NSData 上执行它没有多大意义。先把它转成数字,然后就可以了。

编辑

看起来 SQLite 支持此语法,因为 bitwise operators have been around since 2001 ,这意味着 Core Data 也可能会接受它。

关于iphone - 如何在 Core Data 中使用二进制标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716734/

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