Tag: 数据库

iOS上的键值存储数据库

在iOS上创build关键值存储数据库的一个例子是YapDatabase 。 但是,我没有经验,并想知道是否值得使用它,而不是像核心数据或FMDB的东西。 我有一个关键的问题是:如何pipe理与这个数据库的对象关系? 如果我可以避免对象关系,我正在寻找build议或数据库devise技巧来解决如何解决与另一个对象具有多对多关系的对象的问题。 我们来考虑一个用例(这只是一个例子,来帮助解决这个问题): sender <<->> message <<->> recipient sender has a: photo_data, name, gender, age, email, username, twitter_id, facebook_id, sender_id recipient has a: photo_data, name, gender, age, email, username, twitter_id, facebook_id, recipient_id message has a: text, rich_text, picture_data, voice_data, shared_url, message_id 我想过使用message_id,sender_id和recipient_id来关联每个模型,但有没有更好的方法?

iOS实现理论

我们(IT部门在工作)正在build立一个iPad应用程序,它将采用数字标识并在表格中提供一个简单的查找。 它本质上是在一个表上进行主键search,并在小处理后显示一个字段。 警告 : 该表中有450万行,需要最多1秒的查找时间。 它不会有互联网连接,所以它必须发生在设备上。 我们有一些想法,但最有意义的是: Sqlite:它会站起来这样的虐待? 它可以处理多行,它会做得好吗? 平面文件search:我们可以自己循环播放文件,也可以将它们分成前几位,做一些更智能的索引。 卸载到可以通过API处理的设备上的某个第三方数据库应用程序。 完全是我们无尽的智慧,我们已经错过了。 我必须借此机会感谢苹果让这个testing非常容易。 如果没有Mac或Dev许可证,我们不希望超过2000英镑,直到我们知道我们可以把它完成。

应用程序拒绝在Documents目录中存储数据库

我的应用程序最近被拒绝从应用程序商店存储在Documents目录中的数据。 我已经把它移到了那里,因为最新的变化,db现在必须是可写的 – 它不再是只读的。 在研究解决scheme时,我读过使用NSLibraryDirectory实际上最好。 这是否如此,更重要的是,这是否会解决苹果的担忧? 他们的抱怨是,该应用程序让用户下载到很多内容(它不会让用户下载任何数据,除非你数据库),并且在“不正确的位置”存储“太多的数据”。 数据是8 MB,但可能增长到大约10或12 MB最大。

无法在iOS中创build具有文件保护function的SQLite3数据库

背景:我一直在观看WWDC 2011 – 208保护iOS应用程序。 他们提到如何使用称为NSFileProtection的文件encryption来保护我们的数据。 虽然我发现自动方法(@ 38:00)被窃听 ,我希望手动方式(@ 37:00)不是。 我尝试使用图像文件保护,一切都很好。 只有Sqlite我不能创build。 问题:我尝试使用sqlite3_open_v2创buildSQLite3数据库(无核心数据),并将SQLITE_OPEN_FILEPROTECTION_COMPLETE作为第三个参数的标志。 它不返回SQLITE_OK 。 码: if (sqlite3_open_v2([databasePath UTF8String], &database, SQLITE_OPEN_FILEPROTECTION_COMPLETE, NULL) == SQLITE_OK){ //everything works }else{ //failed } 更新: 正如borrrden提到的,都导致了以下错误代码: SQLITE_MISUSE (库使用不正确) 更新2: borrrden的第二个评论是正确的,指出两个标志的需要。 它遵循以下代码: if (sqlite3_open_v2([databasePath UTF8String], &database, SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE|SQLITE_OPEN_FILEPROTECTION_COMPLETE, NULL) == SQLITE_OK)

如何在使用Phonegap和iOS 5.1时停止删除HTML 5数据库

我正在使用phonegap为iOS创build测验样式的应用程序。 该应用程序允许用户创build然后参加测验。 目前,我正在使用一个使用phonegap API的HTML 5数据库来存储testing和结果数据。 我担心的是,当设备存储空间已满时,数据库现在可以被iOS 5.1删除。 有没有反正标记的数据库存储的WebKitcaching文件夹,以便它永远不会被删除? 如果这是不可能的,是否有任何build议,以另一种方式来存储将永远是持久的数据。

在iOS应用程序内安全地发送静态文本的最佳方法?

我有这个应用程序,我有很多预定义的string显示给用户。 但是,我想保护它们免受我的.ipa的整体复制。 似乎我不能使用PList,XML等来存储它们,因为它们很容易被snoops读取。 任何想法如何有效地掩盖他们?

作为成员的领域对象保存后为零

我遇到了一个Realm对象有另一个Realm对象作为成员的问题,在添加到数据库之后总是nil 。 class MedPack: Object { dynamic var uuid = NSUUID().UUIDString dynamic var medicine: Medicine? convenience init(medicine: Medicine) { self.init() self.medicine = medicine } override static func primaryKey() -> String? { return "uuid" } } 对象的参考Medicine总是零后添加。 class Medicine: Object { var uuid = NSUUID().UUIDString var name: String? override static func primaryKey() -> String? { return […]

在iOS下载并使用sqlite文件

当我将它存储在我的项目文件夹中时,我已经成功地使用了一个.sqlite文件。 我现在试图做同样的事情,除了从网上拉文件,而不是本地存储。 基于这个代码的任何build议? 我从代码的底部收到错误消息“与准备语句的问题”。 NSData *fetchedData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://www.dropbox.com/s/zpcieluo2qv43vy/builds.sqlite?dl=1"]]; NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *filePath = [documentsPath stringByAppendingPathComponent:@"builds.sqlite"]; [fetchedData writeToFile:filePath atomically:YES]; NSFileManager *fileMgr = [NSFileManager defaultManager]; BOOL success = [fileMgr fileExistsAtPath:filePath]; if (!success) { NSLog(@"Cannot locate database file '%@'.", filePath); } if (!(sqlite3_open([filePath UTF8String], &db) == SQLITE_OK)) { NSLog(@"An error has […]

iOS数据库教程

我是新来的iOS,并试图学习如何远程设置数据库,并使我的项目连接到它。 我一直在网上search教程,但不能真的find任何好的。 所以我想知道如果有人可以推荐我一些很好的教程,学习如何将我的iOS项目连接到数据库。 任何帮助是极大的赞赏。 谢谢!

在Firebase中版本化对象

我正在使用Firebase作为移动应用程序的数据库。 移动应用程序版本1使用特定的数据库结构。 但在版本2中,我有一个主要的模式更改。 我找不到任何具体的文档,提到pipe理数据库升级的最佳做法。 所以我正在考虑以下步骤,在纸上看起来不错。 应用程序版本1正在使用firebase / v1进行生产 将版本1架构firebase / v1复制到firebase / v2 升级firebase / v2架构 在firebase / v1上禁用写入操作 分发指向firebase / v2的应用程序v2 通过这些步骤,使用旧版本应用程序的用户将只能读取数据。 所以除非他们不升级应用程序,否则他们将无法修改任何数据。 我是否正确地pipe理模式更新? 或者有没有更好的方法来做到这一点。