gpt4 book ai didi

ios - 构建 nspredicate 时出现 EXC_BAD_ACCESS

转载 作者:技术小花猫 更新时间:2023-10-29 10:29:41 25 4
gpt4 key购买 nike

我正在计算生日和今天之间的月数。有了这个数字,我正在构建一个谓词来从核心数据中获取对象。尽管月数计算正确(如日志所示),但我在构建谓词时收到 EXC_BAD_ACCESS。

这是我的代码:

    NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];

NSUInteger unitFlags = NSMonthCalendarUnit;

NSDateComponents *components = [gregorian components:unitFlags
fromDate:birthdate
toDate:today options:0];
int months = [components month];
NSLog(@"months: %ld", (long)months);
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(alter_min_monat > %@)", months];

为什么会这样?

最佳答案

问题是占位符,不是直接与 NSPredicate 相关,而是与内部调用的 initWithFormat: 相关。

%@ 不应与 int 一起使用,而应使用 %d

所以这一行:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(alter_min_monat > %@)", months];

应该是:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(alter_min_monat > %d)", months];

其他链接信息:String Programming Guide: String Format Specifiers

关于ios - 构建 nspredicate 时出现 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23610509/

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