gpt4 book ai didi

iphone - 将 sqlite3 db 关联到 iPhone 应用程序

转载 作者:行者123 更新时间:2023-12-03 19:33:53 24 4
gpt4 key购买 nike

我正在尝试将 SQLite3 数据库文件与我们的应用程序关联起来,以便可以轻松地从电子邮件打开备份的数据库。然而,以下内容似乎不起作用,因为“邮件”仍然无法识别该文件(在 iPad 和 iPhone 4 上):

<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.database</string>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>App Database File</string>
<key>UTTypeIdentifier</key>
<string>com.company.App.db</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>db</string>
<key>public.mime-type</key>
<string>application/x-sqlite3</string>
</dict>
</dict>
</array>

<key>CFBundleDocumentTypes</key>
<dict>
<key>CFBundleTypeName</key>
<string>App Database</string>
<key>CFBundleTypeIconFiles</key>
<array>
<string>Icon-Small.png</string>
<string>Icon.png</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>

<key>LSItemContentTypes</key>
<array>
<string>com.company.App.db</string>
</array>
<key>LSHandlerRank</key>
<string>Alternate</string>
</dict>
</dict>

知道我做错了什么吗?

最佳答案

为了完整起见,也可能是我自己的引用,这里是一些让它为我工作的进一步细节:

声明您的应用支持的文档类型(例如sqlite3数据库)

<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>com.company.sqlite3.database</string>
<key>UTTypeReferenceURL</key>
<string>http://www.company.com/</string>
<key>UTTypeDescription</key>
<string>MyCompany SQLite Database</string>
<key>UTTypeIconFile</key>
<array>
<string>Icon-Small.png</string>
<string>Icon.png</string>
</array>
<key>UTTypeConformsTo</key>
<array>
<string>public.database</string>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>sqlite</string>
</array>
<key>public.mime-type</key>
<array>
<string>application/x-sqlite3</string>
<string>application/octet-stream</string>
</array>

</dict>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>MyCompany SQLite Database</string>
<key>CFBundleTypeIconFiles</key>
<array>
<string>Icon-Small.png</string>
<string>Icon.png</string>
</array>

<key>CFBundleTypeExtensions</key>
<array>
<string>sqlite</string>
</array>

<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-sqlite3</string>
<string>application/octet-stream</string>
</array>

<key>LSHandlerRank</key>
<string>Alternate</string>

<key>LSItemContentTypes</key>
<array>
<string>com.company.sqlite3.database</string>
</array>

<key>NSPersistentStoreTypeKey</key>
<string>SQLite</string>

</dict>
</array>

将上述 XML 复制粘贴到您的 Info.plist 文件中。

将“存储类型”设置为“SQLite”对我来说并不是致命的解决方案。

我之前的文章提到了一种相当不正确的让它工作的方法,它接受所有文件并且没有正确导出类型。

此外,如果您的应用将这些文件作为附件通过电子邮件发送,请确保它与您设置的捕获的 MIME 类型匹配。应用程序/八位字节流并不重要,只是我们应用程序的旧版本正在通过电子邮件发送具有该 MIME 类型的数据库。

例如,

[controller addAttachmentData:[NSData dataWithContentsOfFile:dbPath] mimeType:@"application/x-sqlite3" fileName:filename];

我当然希望其他尝试了解如何让他们的应用程序支持打开 sqlite3 数据库备份的人会发现这很有帮助。

关于iphone - 将 sqlite3 db 关联到 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3127355/

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