gpt4 book ai didi

ios - 构建 nspredicate 时的 EXC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-11-30 11:21:38 34 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/51208795/

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