gpt4 book ai didi

ios - 使用来自 NSDictionaries 的 NSArray 的谓词创建 NSSet

转载 作者:行者123 更新时间:2023-11-29 13:00:01 25 4
gpt4 key购买 nike

我正在尝试从 NSDictionaries 的 NSArray 创建一个 NSSet。但是,每次线程访问我的 NSSet 代码时,它都会抛出 BAD ACCESS 错误,并且我的应用程序崩溃。

NSSet *matchingItems = [insProject.ins filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"dpc == %@", dpc]];

dpc == 2

当我登录 insProject.ins 时,这就是我得到的。

2013-11-16 16:53:27.148 myAPP[7979:907] Relationship 'ins' on managed object (0x1d570b00) <insProject: 0x1d570b00> (entity: insProject; id: 0x1d575830 <x-coredata://XXXXXXXXXXX/insProject/p2> ; data: <fault>) with objects {(
<ins: 0x1d59cf60> (entity: ins; id: 0x1d59c040 <x-coredata://XXXXXXXXXXX/ins/p50> ; data: {
dpc = 11;
}),
<ins: 0x1d59cbe0> (entity: ins; id: 0x1d59bf80 <x-coredata://28BFA6C4-F20F-445D-AD93-2CA028303C28/ins/p38> ; data: {
dpc = 4;
}),
<ins: 0x1d59cc80> (entity: ins; id: 0x1d59bfa0 <x-coredata://28BFA6C4-F20F-445D-AD93-2CA028303C28/ins/p40> ; data: {
dpc = 7;
}),
<ins: 0x1d59c900> (entity: ins; id: 0x1d59bf50 <x-coredata://28BFA6C4-F20F-445D-AD93-2CA028303C28/ins/p35> ; data: {
dpc = 9;

}),
<ins: 0x1d59cd80> (entity: ins; id: 0x1d59bfd0 <x-coredata://28BFA6C4-F20F-445D-AD93-2CA028303C28/ins/p43> ; data: {
dpc = 16;
}),
<ins: 0x1d59cf20> (entity: ins; id: 0x1d59c030 <x-coredata://28BFA6C4-F20F-445D-AD93-2CA028303C28/ins/p49> ; data: {
dpc = 2;
})
)}

如您所见,数组中有一个项目的 dpc == 2 但是这行 NSSet 代码在它试图运行时变得疯狂。

最佳答案

看起来您的 NSPredicate 的格式字符串与您传递给它的 dpc 的值之间存在类型不匹配:带有 的格式字符串%@ 需要一个对象,因此将原始类型传递给它会触发未定义的行为。

如果dpc是一个int,将格式字符串更改为@"dpc == %d";它应该解决问题。或者,将 dpc 设为 NSNumber,并保持 %@ 格式:

NSNumber *dpc = @2; // This is the new syntax for [NSNumber numberWithInt:2]

关于ios - 使用来自 NSDictionaries 的 NSArray 的谓词创建 NSSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20014479/

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