gpt4 book ai didi

ios - 带有 sqlite 的核心数据仅返回 3 行

转载 作者:行者123 更新时间:2023-11-29 02:23:50 24 4
gpt4 key购买 nike

我的数据库有两个表ZDESTINATIONZPOSTIT。存在多对一的关系,一个PostIt可以有多个Destination。我想获取所有 Destination 行(其中有 9 行),并且我正在使用 NSFetchRequest。但只返回 3 行。我没有指定谓词。我有一个排序顺序和一个部分键名路径作为 @"postIt.creationTime"。我检查了数据库,所有 postIts 都有创建时间,并且所有目的地都有有效的 postit 关系。

这是非常简化的查询。

SELECT t0.Z_ENT, t0.Z_PK, t0.ZPOSTIT
FROM ZDESTINATION t0
LEFT OUTER JOIN ZPOSTIT t1 ON t0.ZPOSTIT = t1.Z_PK
WHERE t0.Z_PK IN (?,?,?)
ORDER BY t1.ZCREATIONTIME DESC
LIMIT 20

目的地(主键,PostIt)

"1" "3"
"2" "2"
"3" "4"
"4" "5"
"5" "5"
"6" "5"
"7" "7"
"8" "7"
"9" "7"

POSTIT主键,创建时间

"1" "442134908.015139"
"2" "442134921.469915"
"3" "442134941.083225"
"4" "442135028.839804"
"5" "442212344.121323"
"6" "442212468.053344"
"7" "442214203.670005"

请注意,LEFT OUTERJOIN 是由获取请求自动生成的。

您对如何调试有什么想法或技巧吗?

这是核心数据NSFetchRequest

NSFetchRequest *fetchRequest = [ [ NSFetchRequest alloc ] init ];
NSEntityDescription *entity = [ NSEntityDescription entityForName:@"Destination"
inManagedObjectContext:studyStageAssets.postItMoContext ];
[ fetchRequest setEntity:entity ];

// Create the sort descriptors array.
NSSortDescriptor *creationTimeDescriptor = [ [ NSSortDescriptor alloc ]
initWithKey:@"postIt.creationTime"
ascending:NO ];

NSArray *sortDescriptors = @[ creationTimeDescriptor ];
[ fetchRequest setSortDescriptors:sortDescriptors ];

// Create and initialize the fetch results controller.
_fetchedResultsController = [ [ NSFetchedResultsController alloc ]
initWithFetchRequest:fetchRequest
managedObjectContext:studyStageAssets.postItMoContext
sectionNameKeyPath:@"postIt.creationTime"
cacheName:@"TrailIt" ];

_fetchedResultsController.delegate = self;

紧接着是performFetch

最佳答案

根据我的评论,问题可能是由于获取的结果 Controller 的缓存造成的。您可以使用

清除它
[NSFetchedResultsController deleteCacheWithName:@"TrailIt"];

关于ios - 带有 sqlite 的核心数据仅返回 3 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793270/

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