gpt4 book ai didi

iphone - iPhone 中可以添加多少条记录?

转载 作者:行者123 更新时间:2023-12-03 21:22:00 25 4
gpt4 key购买 nike

我想问一个有关 iPhone 的问题。我正在编写一个程序,可以将记录添加到iPhone内置联系人中。不过,我不知道有多少用户可以在iPhone中存储通讯录。是否有一些限制(例如iPhone内置联系人仅支持2000条记录)。触点的尺寸?

此外,iPhone的大小(例如32GB、64GB)或其他因素会影响通讯录的大小吗?谢谢。

最佳答案

联系人存储在手机上的一对 SQLite 数据库中,因此唯一的限制是 SQLite 和设备的处理能力所施加的限制。

简短的回答是:除非您尝试做一些非常大规模的事情,否则您不太可能遇到问题,例如为约 160 万印度铁路员工编写公司目录应用程序或捕获所有〜 2 亿美国登记选民。我创建了一个数据库,其中包含所有美国邮政编码,另一个数据库包含标准 Linux 拼写词典中所有英语、德语、法语和西类牙语单词的多个映射,并且没有遇到问题。后者有一个包含超过 300 万条记录的表,并且在原始 iPhone 上运行良好。

在记录数量受到绝对限制之前,您更有可能遇到机器性能限制。例如,请考虑 SQLite site 中的这一点:

When you start a transaction in SQLite (which happens automatically before any write operation that is not within an explicit BEGIN...COMMIT) the engine has to allocate a bitmap of dirty pages in the disk file to help it manage its rollback journal. SQLite needs 256 bytes of RAM for every 1MB of database. For smaller databases, the amount of memory required is not a problem, but when databases begin to grow into the multi-gigabyte range, the size of the bitmap can get quite large. If you need to store and modify more than a few dozen GB of data, you should consider using a different database engine.

因此,(如果我的数学正确的话)30G 数据库在插入期间将需要 7.5M 的位图空间。这在第一代 iPhone 上可能很难(此外只有 64M RAM 和 16G 闪存),但在具有更多内存的后续型号上也许没问题。也就是说,在获取这么多记录之前,更新索引或要求 AddressBook.app 显示它们可能会导致性能 Not Acceptable 。

如果您想探索 AddressBook 架构,请在模拟器中创建单个联系人,然后在终端窗口中创建:

% cd "~/Library/Applications Support/iPhone Simulator/4.0.2/Library/AddressBook"
% sqlite AddressBook.sqlitedb
sqlite> .schema

然而,这是一个很好的例子,说明了为什么您必须在将应用提交到商店之前在真实设备上测试您的应用。这样的应用程序在模拟器的 3.0GHz、多核、4GB RAM 环境中可以毫无问题地运行,但在 1/2 GHz 第二代 iPod Touch 上则运行不佳。

关于iphone - iPhone 中可以添加多少条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3786045/

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