Swift 4中iOS的Realm数据库入门

programmingwithswift.github.io上 查看我的其他帖子

如果您正在寻找深入的Realm Database教程,那么这不是适合您的文章。 我将通过xcode创建一个新项目,将Realm添加到您的项目中,然后再介绍Realm的基本用法。

将Realm数据库添加到项目中的第一步是下载它。

我将使用CocoaPods进行此操作。 如果您尚未安装CocoaPods,则可以通过转到项目的根目录并运行此命令sudo gem install cocoapods来轻松安装它。

之后,您需要运行pod repo update 。 此命令将更新CocoaPods,以便它了解Realm的最新版本。

接下来,您需要创建一个Podfile。 为此,在项目的根目录中创建一个名为“ Podfile”的新文件。 现在,您需要打开该文件,并添加以下内容。

 目标'{YourProjectName}'做 
use_frameworks!
pod'RealmSwift'
结束

请记住将{YourProjectName}更改为您称为项目的名称。

创建Podfile并从上方添加代码后,您需要在根目录中运行pod install 。 这样,CocoaPods会将Realm安装到您的项目中。

请注意,下载大约200MB可能需要一些时间。 不用担心,以后再存档应用程序时不会那么大。

安装完成后,如果需要打开Xcode,则需要关闭它。现在,您需要打开{YourProjectName} .xcworkspace。 如果双击该文件,它将打开Xcode,您应该可以运行您的应用程序作为测试。

在本教程中,我将为所有示例使用默认的ViewController.swift。

开始使用Realm之前,我们需要做的第一件事就是导入RealmSwift。 为此,请将此行代码添加到其他导入所在的文件顶部

 导入RealmSwift 

这样做将允许您创建Realm的新实例,但是我们还没有。

要创建模型,您只需创建一个继承Object类。 我将创建两个模型,一个用于用户,一个用于宠物。 看起来像这样:

现在,当您要创建一个新用户时,您需要做的就是创建一个UserPet的新实例。

为此,我将创建两个函数。 一个将是创建一个新的User ,另一个将是创建一个新的Pet

函数将如下所示:

这两个功能将使我们能够创建新的用户和宠物。

为了用领域保存数据,我们需要做的就是创建我们在上面的代码中创建的对象的新实例。

要创建和保存新数据,我们要做的是以下操作:

在上面的代码中,我们要做的第一件事是创建一个Realm的新实例,稍后将在尝试保存数据时使用它。

我们创建一个名为“ Spot”的新Pet和一个名为“ John”的新User 。 我们还通过传递之前在行上创建的Pet实例,将“ John”作为宠物。

之后,我们尝试将新对象写入数据库。 使用以下代码(同样在图片的上方)完成对数据库的写入:

 尝试!  realm.write { 
realm.add(newPet)
realm.add(newUser)
}

运行此代码后,数据将保存到数据库中,您可以对其进行查询。

从根本上讲,查询数据比保存数据还要容易。

要查询刚刚创建并保存的数据,我们需要做的是:

 让用户= realm.objects(User.self) 

如果我们将其打印出来,我们将在中获得以下内容:

 结果 ( 
[0]用户{
名字=约翰;
宠物=宠物{
名称=点
};
}

从结果中可以看到,用户以及他们拥有的宠物都将被退回。

要更新数据,我们将使用之前编写的查询。 查询返回一个数组。 对于此示例,我将只访问数组中的第一个元素。

要更新数组中的第一个元素,我们可以这样做:

 如果让用户= realm.objects(User.self).first 
{
尝试! realm.write {
user.name =“詹姆斯”

如果让pet = user.pet
{
pet.name =“杰克”
}
}

打印(realm.objects(User.self).first)
}

打印用户将显示如下更新的详细信息:

 可选(用户{ 
名字=詹姆斯;
宠物=宠物{
名字=杰克;
};
})

我很遗憾地说这些基础知识一直很简单,但麻烦的是它们很🙂

如果要删除数据库中的对象,可以执行以下操作:

 如果让用户= realm.objects(User.self).first 
{
尝试! realm.write {
realm.delete(用户)
}

打印(realm.objects(User.self))
}

最后的打印返回以下内容:

 结果 ( 

数据库中没有更多用户。 我敢肯定,这将是显而易见的,但只是要明确一点,这不会从数据库中删除所有者宠物。

需要明确的是,这是最基本的领域用例。 当您开始添加更多的关系和不同类型的关系并使用Realm的其他功能时,它会变得更高级,更复杂。

但是,即使您开始接触更复杂的内容,它仍然相对简单,并且网上有大量信息可以为您提供帮助。

让我知道如果我错过了重要的事情,或者如果您知道做某事的更好方法,我将始终乐于学习和改进!

如何使用SKStoreReviewController教程: https ://medium.com/programming-with-swift/skstorereviewcontroller-tutorial-programming-with-swift-31a4faded01f

如何使用以下方法创建自定义UITableViewCell: Swift:https://medium.com/programming-with-swift/create-a-custom-uitableviewcell-with-swift-6d7eb7389f19