jjzjj

ios - iOS 10 中的 sqlite3_prepare_v2 exc_bad_access

coder 2023-07-21 原文

我在我的 iOS 项目中使用 sqlite 作为数据库。在 iOS 9 中,一切都完美运行。现在我更新了新的 Xcode。但是应用程序在“sqlite3_prepare_v2”处多次崩溃。

此外,我不会超时关闭数据库。并且只打开一次。 我在调试中的下面的代码 b'acs 中添加了打开的数据库,我关闭了数据库。但还是崩溃了。

crash

谁能帮帮我?

提前致谢

最佳答案

我认为问题出在第 2592 行。

传递给 sqlite3_key(...) 时,不要将 key 视为字符串 不确定如何生成 key ,但如果第一个字节设置为 '\0',则 strlen 返回 0 (如果你使用一些基于 NSData 随机字节的自动生成的助手,这可能会经常发生)

sqlite3_key 定义:

SQLITE_API int SQLITE_STDCALL sqlite3_key(sqlite3 *db, const void *pKey, int nKey)

它期望 nKey 字节,其中也允许“\0”

改为尝试:

 NSData *passBytes = [g_sqlite_key dataUsingEncoding:NSUTF8StringEncoding];
 int status = sqlite3_key(contactDB, passBytes.bytes, passBytes.length);
 if (status != SQLITE_OK) {
      // handle error and return
 }
 // continue...

关于ios - iOS 10 中的 sqlite3_prepare_v2 exc_bad_access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39916124/

有关ios - iOS 10 中的 sqlite3_prepare_v2 exc_bad_access的更多相关文章

  1. 使用 ACL 调用 upload_file 时出现 Ruby S3 "Access Denied"错误 - 2

    我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file

  2. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  3. ruby-on-rails - attr_accessible 在 Rails 中如何工作? - 2

    我刚刚有一个关于RubyonRails和模型(Rails3)中的attr_accessible属性的一般性问题。有人可以解释应该在那里定义哪些模型属性吗?我记得一些关于批量分配风险的事情,虽然我在这方面不太了解......谢谢:) 最佳答案 想象一个带有一些字段的订单类:Order.new({:type=>'Corn',:quantity=>6})现在假设订单也有折扣代码,比如:price_off。您不想将:price_off标记为attr_accessible。这会阻止恶意代码制作最终会执行如下操作的帖子:Order.new({:

  4. ruby-on-rails - Rails 2.3.5 : How does one access code inside of lib/directory/file. rb? - 2

    我创建了一个文件,这样我就可以在lib/foo/bar_woo.rb中的许多模型之间共享一个方法。在bar_woo.rb中,我定义了以下内容:moduleBarWoodefhelloputs"hello"endend然后在我的模型中我正在做类似的事情:defMyModel解释器提示它期望bar_woo.rb定义Foo::BarWoo。《使用Rails进行敏捷Web开发》一书指出,如果文件包含类或模块,并且文件使用类或模块名称的小写形式命名,那么Rails将自动加载文件。因此我不需要它。定义代码的正确方法是什么,在我的模型中调用代码的正确方法是什么? 最佳答案

  5. SCIM v2 的 Ruby 实现 - 2

    SCIM是Google、Salesforce、PingIdentity等提出的用户配置的新标准。是否有现有的ruby​​实现来支持它?SimilarbutforJava 最佳答案 您可以获得一个面向Okta的开始fromhere或从头开始here但我认为您只能靠自己。耶!您有机会为Ruby社区贡献一个开源项目:) 关于SCIMv2的Ruby实现,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

  6. ruby-on-rails - 是否有类似 'with_indifferent_access' 的数组可用于包含? - 2

    我尝试在我的应用中只使用:symbols作为关键词。我尝试在:symbol=>logic或string=>UI/languagespecific之间做出严格的决定但我也得到了每个JSON的一些“值”(即选项等),因为JSON中没有:symbols,所以我调用的所有哈希都具有“with_indifferent_access”属性。但是:数组是否有相同的东西?像那样a=['std','elliptic',:cubic].with_indifferent_accessa.include?:std=>true?编辑:将rails添加到标签 最佳答案

  7. ruby-on-rails - rails : How can you access session variables using multiple controllers? - 2

    我在使用session变量时遇到问题。我有两个名为“graduate_students_controller”和“current_students_controller”的Controller。这些Controller中的每一个都控制不同的View文件。我在这两个Controller中使用session变量来存储session信息。问题来了。假设我有两个View文件“reports/current_students_list”、“reports/graduate_students_list”,每个文件都由上述Controller单独控制。现在,如果我尝试从同一浏览器中打开这两个网页并尝

  8. ruby - Rails 3 不会用 rvm 安装 sqlite3-ruby gem? - 2

    我正在试用rvm,并用它安装了ruby​​1.9.2和rails3。我需要重新安装sqlite3-rubygem(因为rvm为不同版本的ruby​​将所有gem分开)。问题是,当我尝试时,我得到:geminstallsqlite3-ruby/home/jenny/.rvm/rubies/ruby-1.9.2-p0/bin/gem:4:warning:Insecureworldwritabledir/home/jenny/.rvm/gems/ruby-1.9.2-p0/bininPATH,mode040777Buildingnativeextensions.Thiscouldtakeaw

  9. ruby-on-rails - Rails 错误 : Unable to access log file. 请确保/home.../log/development.log 存在并且是 chmod 0666 - 2

    我正在尝试将db2数据库迁移到RubyonRails,但是当我运行railsgscaffold时,我得到了这个:Rails错误:无法访问日志文件。请确保/home/.../log/development.log存在并且是chmod0666。日志级别已提高到WARN,输出定向到STDERR,直到问题得到解决。我检查过,我的development.log不存在!我不确定为什么,因为我在安装过程中遵循了每一步,但我的文件仍然不存在。我怎样才能创建它?我已经尝试卸载并重新安装Rails,但问题仍然存在。 最佳答案 也许只做它要求你做的事?:

  10. ruby-on-rails - 事件管理员 : Can't access show/edit pages - 2

    我在使用ActiveAdmin时遇到问题。以下是版本:ruby'2.2.1'rails'4.2.0'activeadmin:1.0.0.pre1arbre:1.0.3(提到这个是因为它似乎与我的问题有某种联系)我们升级到rails4.2并且还必须升级activeadmin(从0.5开始)。经过几次调整(尤其是授权系统)之后,一切似乎都很好,除了一个大问题:我只能访问索引页面。当转到具有ID的页面时(例如:“http://localhost:3000/admin/companies/2968”),我收到此错误:没有路由匹配{:action=>"edit",:controller=>"ad

随机推荐