gpt4 book ai didi

objective-c - FilteredArrayUsingPredicate 总是返回 nil NSArray?

转载 作者:行者123 更新时间:2023-11-29 04:45:15 24 4
gpt4 key购买 nike

我已经使用 CoreData 获取了一些项目,并且我想使用 FilteredArrayUsingPredicate 进一步过滤这些结果,这给我带来了一些问题。

核心数据获取:

NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:[NSEntityDescription entityForName:@"Collection" inManagedObjectContext:aContext]];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"CategoryName==%@", aCategoryName];
[request setPredicate:pred];

NSError *error=nil;
NSArray *tempArray=[aContext executeFetchRequest:request error:&error];
[request release], request = nil;

NSLog(@"results: %@", tempArray);

这给了我这个结果:

results: (
"<Collection: 0x8eb1920> (entity: Collection; id: 0x8eb0aa0 <x-coredata://7C4A4A5D-691A-4F02-9450-D0D910B53903/Collection/p95> ; data: {\n CategoryID = 22832;\n CategoryName = \"2000 - NOURISON 2000\";\n IsDeleted = 0;\n ManufacturerID = 192;\n ModifiedOn = \"2012-03-08 09:00:46 +0000\";\n ParentCategoryID = 0;\n PhotoName = \"\";\n SortOrder = 0;\n})"
)

在本例中只有 1 个结果,但情况并非总是如此,因此我想过滤更多结果:

Collection *collection = [[tempArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ManufacturerID==%@", aManufacturerID]]  lastObject];
NSLog(@"result: %@ " , collection);

这给了我这个结果:

result: (null) 

不确定我在这里缺少什么,我正在为这个过滤数组谓词传递正确的ManufacturerID 192。

最佳答案

什么是ManufacturerID?

通过使用 %@ 格式说明符,它很可能是 [NSNumber numberWithInt:192]

或者,如果您不想用 NSNumber 换行,您可以将谓词中的格式从 %@ 更改为 %d

NSInteger aManufacturerID = 192;

Collection *collection = [[tempArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ManufacturerID==%d", aManufacturerID]] lastObject];
NSLog(@"result: %@ " , collection);

关于objective-c - FilteredArrayUsingPredicate 总是返回 nil NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9758241/

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