gpt4 book ai didi

xcode - FMDatabase/SQLite3 使用的 "Too many files open"问题

转载 作者:IT王子 更新时间:2023-10-29 06:26:55 26 4
gpt4 key购买 nike

我在我的 OSX 应用程序中使用 SQLite3 的 FMDatabase 包装器。我在数据库中做了很多插入操作:

FMResultSet *results;
results= [db executeQuery:@"select count(*) from `items` where key = ?",[keyPath lowercaseString],nil];

while([results next])
{
if([results unsignedLongLongIntForColumnIndex:0]>0){
updateOperation=TRUE;
}
}
[results close];

if(updateOperation){

[db executeUpdate:@"update `items` set OSXsize=?,OSXOsize=?, OSXDate=?, UUID=?,sourceFile=?,tombStone=0,SandBoxBookMark=?,songname=?,albumartist=? where key=?",
size,originalSize, convertedDate,UUID,sourcePath,bookmark,fileName,albumArtist,[keyPath lowercaseString] , nil];
}
else
{
[db executeUpdate:@"insert into `items`(key,filepath, OSXsize, OSXOsize, OSXdate,UUID,sourceFile,tombStone,SandBoxBookMark,songname,albumartist) values(?,?,?,?,?,?,?,0,?,?,?)",
[keyPath lowercaseString], dapPath, size,originalSize, convertedDate,UUID,sourcePath,bookmark,fileName,albumArtist, nil];
}

我打开数据库一次,但是,随着应用程序在事件监视器中的运行,我看到附加了 4725 多个文件句柄:

/Users/userA/Library/Containers/com.map-pin.Dapper/Data/Library/Application Support/com.map-pin.Dapper/dapperright.sqlite
15
16
...
4724
4725

最佳答案

这是在多线程应用程序中吗?您是否在每次更新/插入行时创建并打开一个 db 实例?你有 [db close]; 吗?

你测试过了吗FMDatabaseQueue

关于xcode - FMDatabase/SQLite3 使用的 "Too many files open"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44051089/

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