avatar
文章
268
标签
109
分类
39

首页
分类
归档
反馈
叶落花开的博客
搜索
首页
分类
归档
反馈
Realm数据库入门
发表于2024-09-17|客户端开发Swift开发

前言

由于最近项目中在用Realm,所以把自己实践过程中的一些心得总结分享一下。

Realm是由Y Combinator孵化的创业团队开源出来的一款可以用于iOS(同样适用于Swift&Objective-C)和Android的跨平台移动数据库。目前最新版是Realm 2.0.2,支持的平台包括Java,Objective-C,Swift,React Native,Xamarin。

Realm官网上说了好多优点,我觉得选用Realm的最吸引人的优点就三点:

  1. 跨平台:现在很多应用都是要兼顾iOS和Android两个平台同时开发。如果两个平台都能使用相同的数据库,那就不用考虑内部数据的架构不同,使用Realm提供的API,可以使数据持久化层在两个平台上无差异化的转换。

  2. 简单易用:Core Data 和 SQLite 冗余、繁杂的知识和代码足以吓退绝大多数刚入门的开发者,而换用 Realm,则可以极大地减少学习成本,立即学会本地化存储的方法。毫不吹嘘的说,把官方最新文档完整看一遍,就完全可以上手开发了。

  3. 可视化:Realm 还提供了一个轻量级的数据库查看工具,在Mac Appstore 可以下载“Realm Browser”这个工具,开发者可以查看数据库当中的内容,执行简单的插入和删除数据的操作。毕竟,很多时候,开发者使用数据库的理由是因为要提供一些所谓的“知识库”。

“Realm Browser”这个工具调试起Realm数据库实在太好用了,强烈推荐。
阅读全文
Swift-RealmSwift中实现多表联合查询
发表于2024-09-17|客户端开发Swift开发

在Realm数据库中,直接进行像SQL那样的JOIN操作是不支持的,因为Realm设计为一个轻量级的、易于使用的数据库,它侧重于对象关系映射(ORM)而非复杂的查询语言。然而,你可以通过以下几种方式在Realm中模拟联合查询(JOIN)的效果:

1. 使用链接对象(Linking Objects)

如果你的模型之间存在关联,你可以在Realm模型中定义链接对象(Linking Objects)来引用其他模型的对象。这样,当你查询一个模型时,可以间接地访问到与之关联的其他模型的数据。

假设有两个模型Person和Dog,其中Person有一个或多个Dog,可以这样定义模型:

阅读全文
Swift-MBProgressHUD和SVProgressHUD各自的缺点及解决方案
发表于2024-09-16|客户端开发Swift开发

MBProgressHUD和SVProgressHUD各自都有缺点:

当A页面进入B页面,B页面查询数据时,报错需要弹出toast弹窗,并退出B页面到A页面。一般toast弹窗是现实在keywindow上的,但是kewindow是B页面,而由于自动返回A页面,B页面销毁了,就看不到这个toast弹窗了。使用MBProgressHUD时就会遇到该问题。有的app为了解决这个问题人为延迟推出B页面,这样降低用户的体验流畅度,不完美。

另一种采用SVProgressHUD来实现,它是异步时弹窗,显示调用弹窗和实际显示弹窗有一个时间差,正好在B页面调用弹窗,在回到A页面时,弹窗出来,所以能显示出来。我们遇到过一个问题,一个请求后台在十几毫秒内返回,蒙层弹窗还没有出来请求回来了,并且取消弹窗,实际上SVProgressHUD还没有出来,导致后面没有取消处理了,一直在哪里转圈了。

最佳解决方案是创建一个优先级高于当前级别的window显示蒙层和动画。

阅读全文
Xcode-解决"Permission Failure" (10/2007); server message = "CREATE operation not permitted"问题
发表于2024-09-14|客户端开发Swift开发

在为我的ios app加入icloud同步功能时候,使用模拟器运行app时遇到一个错误:

Optional(<CKError 0x60000246ccc0: "Permission Failure" (10/2007); server message = "CREATE operation not permitted"; op = 1E2586ACAD82E59D; uuid = DEDC710D-84EC-4353-B310-9B9B65A32338; container ID = "***">)

我首先去检查了模拟器里是否已经登录了appleid账号(新申请的)。没问题,是已登录的,但是奇怪的是icloud选项是灰色的,看来这就是问题原因了。

阅读全文
Anki的数据库结构说明
发表于2024-09-13|IT技术Anki

This document contains a brief description of the Anki2 database structure as of version 11 (see ver field of the col table). There are planned upgrades to Anki’s db structure as explained in the planned changes document.

Thanks to @sartak and @fasiha for starting to make this. Additional thanks to @bibstha for more documentation

Anki database structure

Anki uses a single SQLite database to store information on all of its decks, templates, fields and cards. This file can be found inside the Anki package file (the .apkg file) with the extension .anki2.

Extracting example.apkg we have the following structure.

.
├── example
│&nbsp;&nbsp; ├── example.anki2
│&nbsp;&nbsp; └── media
└── example.apkg
阅读全文
IOS模拟器无法使用Apple ID登录解决办法
发表于2024-09-12|客户端开发Swift开发

我正在使用 CloudKit 开发 iOS 应用程序。我使用新创建的 Apple ID 在模拟器中进行测试。这个 Apple ID 在我的浏览器中登录时工作正常。但是,当尝试在我的模拟器中使用它时,它一直告诉我用户名/密码不正确。(当然,我确保用户名密码是正确的)

该怎么解决呢?

很简单,在网页上登录iCloud https://www.icloud.com/ (国内用户是登录https://www.icloud.com.cn ),并接受了登录后的条款和条件,然后就可以在模拟器中连接我的AppleID。

希望能解决你的问题!

阅读全文
1…456…45
avatar
叶落花开
持续学习,记录后端技术、web技术,以及对认知、技术变现的思考。
文章
268
标签
109
分类
39
友情链接
  • 各大高校博士招生信息
  • 小新软件安装服务
分类
  • IT技术35
    • Anki19
    • Linux7
    • Mac1
    • Windows2
  • Web技术23
    • Electron2
    • Hexo搭建博客教程9
标签
Anki Apache Containerd Corba Docker Dockerd Electron English Git Hexo JNA JacORB Java Javascript Jmeter K8s Kubernetes Kuboard Linux Mac Maven MongoDB Moviepy Node Nodejs OpenAI PMD PV PVC Python Realm RealmSwift Selenium Service Simulator Spring SpringBoot SpringMVC Sqlite Statefuset
网站资讯
文章数目 :
268
最后更新时间 :
©2020 - 2025 By 叶落花开
框架 Hexo|主题 Butterfly
本地搜索
数据库加载中