Tag: cqlite

iOS应用程序中的SQLite C函数导致EXC_BAD_ACCESS

在iOS应用程序中,我试图从100万行的表中的SQLite字段中去除变音符号。 编辑 : 我引用的原始答案已由其作者更新以反映下面接受的答案。 对于任何想要做同样事情的人来说,这是最好的答案。 Rob从早些时候的回答中得到了一个很好的开始。 对于这个问题,我试图复制一个表到另一个使用INSERT INTO … SELECT … FROM …语句。 这工作正常,直到我引入一个C函数,从字段中去除重音和其他变音符号: INSERT INTO DestinationTable (MasterField, SubField, IndexID) SELECT unaccented(MasterField), SubField, IndexID FROM SourceTable 随着unaccented()函数的介绍,我经常会得到一个EXC_BAD_ACCESS,我将在下面指定。 但令人震惊的是,SQLite操作有时会成功完成所有100万行 。 当我扩展负载以复制500万行时,应用程序将始终崩溃。 TL; DR 这里是我的源代码,EXC_BAD_ACCESS指向第一个函数的底部: #import <sqlite3.h> sqlite3 *db; void unaccented(sqlite3_context *context, int argc, sqlite3_value **argv) { if (argc != 1 || sqlite3_value_type(argv[0]) != SQLITE_TEXT) { sqlite3_result_null(context); […]