目前,虽然SQLite也为iOS提供了数据库操作方法,但更多的时候,一般用FMDB,正如主流APP(如QQ和微信)会用到。这里介绍一个查询主流APP主要框架的网站:AppSight 。...: [NSNull null]]; if (!...同样,NULL应该插入SQL 值[NSNull null]。例如,在案件的comment,这可能是nil(而且是在这个例子中),你可以使用comment ?...: [NSNull null]语法,如果将插入字符串comment不是nil,而是将插入[NSNull null]如果它是nil。...在Swift中,您将使用它executeUpdate(values:),这不仅仅是一个简洁的Swift语法,而且也是throws错误处理正确的错误: do { let identifier =
最近自己折腾一个小App的时候需要使用sqlite本地数据库,上Github搜了下IOS下对SQLite的三方封装有个星星很多的FMDB。...不过是Obiect-C的库,我是使用Swift的,本以为不能用了,不过后折腾了下发现在Swift下使用oc的库非常简单。下面我就介绍下如何在Swift下使用oc的FMDB库。 ...1.下载 第一步自然是去下载FMDB了。https://github.com/ccgus/fmdb 2.建立桥接 把下载下来的zip解压。...XCode就会自动建立好oc到Swift的桥接了。 接下来我们在Swift项目下找到一个叫做BabyLog-Bridging-Header的文件,打开编辑。...在里面输入:#import "FMDB.h" 这样我们FMDB到Swift的桥接头就建好了。 3.使用 有了桥接头,我们就可以欢快的使用FMDB了。
数据库 FMDB - 多线程FMDatabaseQueue实例,FMDB数据库的使用演示和封装工具类,基于fmdb的基本操作 通过fmdb进行的数据库的基本操作(增删改查)查找是使用UISearchBar...GXDatabaseUtils - 在FMDB基础上的工具。...======== 缓存处理 YTKKeyValueStore - Key-Value存储工具类,说明。...TMCache - TMCache是Tumblr开源的一个基于key / value的数据缓存类,可用于缓存一些临时数据或者需要频繁加载的数据,比如某些下载的数据或者一些临时处理结果。...AwesomeCache.swift - 令人愉快的磁盘缓存(用Swift编写)。 Track.swift - 基于文件系统和链表的Cache。
发布微博功能(API已不提供) 图片上传功能(API已不提供) 消息功能 发现功能 我的功能 SVProgressHUD 提醒功能 用到的技术点 TableView高度缓存 SDWebImage圆角处理...FMDB数据缓存 OAuth授权 单张图片的高度计算 Cell滚动自动加载更多 撰写页面的动画处理 发布界面的Emoji处理 多图的展示 ......不足点 Weibo 的 App 包里的素材图片实在太多了,找到完全匹配的要花费超多时间,所以有的资源不是很匹配,或者不是当前最新的 该Demo使用了FMDB,其实微博这种时效性毕竟高,且有较高政治敏感度的...,不适合用本地缓存, 这里只是一个 FMDB 使用的简单案例,更适合更新不用太及时,或者类似qq这种接收服务端推送消息的app....使用的第三方库 AFNetworking SDWebImage YYModel SnapKit FMDB pop HMPhotoViewerController 工具分享 图片素材获取: cartool
下面我们通过 iOS 中四个常用类库 (SQLite.swift, FMDB, GRDB, Core Data) 来看看这些设计。...SQLite.swift 方案 SQLite.swift 采用了最简单粗暴的一种方案,使用者只会得到一个数据库连接,所有的操作都是在该连接上串下执行,类库的作者并没有提供数据库连接池类似的特性。...FMDB 方案 FMDB 与 SQLite.swift 一样都是采用串行设计,只不过 FMDB 在此基础上做了些加强:FMDB 中使用者不会接触到数据库连接而是通过在 API 闭包中组织语句来实现数据库访问...SQLite.swift 关注的上下文是其执行期间的单个SQL语句。 对于FMDB和GRDB 关注的上下文环境则是闭包中的 SQL 语句块。...封装过于复杂的话则又有导致处理的灵活性变得很差。如果搞的大而全的话则有可能导致 SQLite 的执行效率变得很差。 总体而言,FMDB 和 GRDB 采用的方式从安全性和灵活性上会更好一点。
前言 OC库和Swift库相似功能的很多 选择的建议是:如果OC库在Swift中完全能用 就优先用OC库 原因是:Swift语言还是不太稳定 语言一更新 程序一大改 实在是太痛苦了 菜单相关 语言 项目名称...PYPhotoBrowser 图片预览 ObjectC MJPhotoBrowser 图片选取 ObjectC QRCodeGenerator 二维码生成 ObjectC NYXImagesKit 图片处理工具...ObjectC EAIntroView 引导页 ObjectC XRCarouselView 图片轮播 文本 语言 项目名称 项目说明 ObjectC TTTAttributedLabel 富文本处理...Sqlite为基础的Key-Value存储 ObjectC FMDB Sqlite库 Swift SQLiteDB SQLite操作 弹出层 语言 项目名称 项目说明 ObjectC ActionSheetPicker...Async GCD使用更方便 Swift SwiftDate 日期处理 Swift XCGLogger 日志 视图调试 语言 项目名称 项目说明 ObjectC FLEX 视图调试
但在多个版本的增增减减之后,版本的处理逻辑会越来越复杂,甚至可能弄错表内哪些字段是新增的,哪些是废弃的。...删除字段 如例子中的 createTime 字段,删除字段只需直接将 ORM 中的定义删除即可。 增加字段 如例子中的 aNewProperty 字段,增加字段只需直接添加 ORM 的定义即可。...修改字段类型 如例子中的 content 字段,字段类型可以直接修改,但需要确保新类型与旧类型兼容。...增加约束 如例子中的 WCDB_UNIQUE(Message, aNewModifiedTime) ,新的约束只需直接在 ORM 中添加即可。...增加索引 如例子中的 WCDBINDEX(Message, "``newIndex", aNewProperty) ,新的索引只需直接在 ORM 添加。
FMDB 在使用上相当方便。...使用说明 ---- 该使用说明主要翻译自 fmdb 的 github 项目说明文档: https://github.com/ccgus/fmdb 引入相关文件 首先将 FMDB 从 github 上 clone...如果你传入的参数是空串:@”” ,则 fmdb 会在临时文件目录下创建这个数据库,如果你传入的参数是 NULL,则它会建立一个在内存中的数据库。...表示执行语句的参数,如: INSERT INTO myTable VALUES (?, ?, ?) 然后,可以我们可以调用 executeUpdate 方法来将 ?...参考:在iOS开发中使用FMDB
关于FMDB最基本的使用我们就不在说了,这个网上大把的文章介绍,我就在这里总结几点我最近在写一个小东西的时候注意到的一点点东西: 一: 怎么看真机上SQLite数据库 我们在开发的过程中肯定有使用到真机测试...Durability(持久性)事务结束后,事务处理的结果必须能够得到固化。事务完成之后,它对于系统的影响是永久的,该修改即使出现系统故障也将一直保留,真实的修改了数据库。...所以事务是线程安全的 EG:下面就是一个简单的数据存储关于FMDB事务的例子 /** debug @param title 统计标题 @param content 统计内容JSON数据...,'title' TEXT NOT NULL, 'content' TEXT NOT NULL,'hour' TEXT NOT NULL)"; BOOL result = [_dataBase...写入大量数据的处理方法
iOS开发的基本上都知道fmdb,自从用了fmdb之后都忘记了原生的sqlite3操作了(fmdb太好用了)。..., NULL, &err) !...查询数据 1.使用sqlite3_prepare_v2函数预处理SQL语句 2.使用sqlite3_bind_text函数绑定参数 3.使用sqlite3_step函数执行SQL语句,遍历结果集 4.使用...; sqlite3_stmt * statement;//语句对象 /// 预处理函数 v2 //第一个参数 数据库的对象...if (sqlite3_prepare_v2(db, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) { //进行
移动平台项目开发中,除了React Native 提供的封装好的部分插件和原声组建外,在实际的项目中还需要使用到很多其他的插件,比如网络请求、数据库、相机、相册、通讯录、视频播放器、浏览器、蓝牙连接、图片处理...这篇文章重点介绍FMDB数据库插件的开发与使用。...二:实现思路分析 FMDB数据库插件是需要实现数据的新增、查询、修改、删除等功能,通过querySQLite方法来实现数据的查询,并将接口提供给Javascript开发使用,打开默认浏览器和打开自定义浏览器...执行sql语句 在创建数据表和打开数据库成功之后,对Javascript传入的sql数据库语句进行处理执行,源码如下: BOOL result = [self.db executeUpdate:sqlString..., title text NOT NULL, content text NOT NULL, url text NOT NULL, time text NOT NULL, remark text NOT
在本教程中,我们将学习什么是调度器,以及我们如何在iOS应用开发中使用它们来管理队列和循环。之前对 Swift、Combine 框架和 iOS 开发的知识是必要的。 让我们开始吧! 什么是调度器?...OperationQueue 主要用于后台任务,如更新应用程序的用户界面。...它为任何在它被声明后的发布者改变一个调度器,如下面的代码块所示。...= null} Received e on thread {number = 7, name = null} 在上面的代码块中,这些值是从不同的线程而不是主线程发出的...我们还谈到了 Combine 框架以及它是如何影响 Swift 中调度器的使用。 我们学习了如何在 Swift 中使用 receive(on) 和 subscribe(on) 方法来切换调度器。
难度水平:困难 摘要 本文讨论了如何在 Swift 中实现对链表的深拷贝,特别是包含随机指针(random)的链表的深拷贝问题。...1,1,2,1 示例 3: 输入:head = 3,null,3,0,3,null 输出:3,null,3,0,3,null 提示: 0 <= n <= 1000 -10^4 <= Node.val <...nil } // 创建一个字典用于存储原节点和对应新节点的映射关系 var nodeMap = [Node: Node]() // 第一遍:复制节点,仅处理值和...current { nodeMap[node] = Node(node.val) current = node.next } // 第二遍:处理...关于我们 我们是由 Swift 爱好者共同维护,我们会分享以 Swift 实战、SwiftUI、Swift 基础为核心的技术内容,也整理收集优秀的学习资料。
他举了一个例子:优秀的木匠清楚自己正在建造的整体项目,但在处理项目的每个部分时,他们必须问:“这个部件是用来做什么的?”并将其与整个项目相关联。...本文中,tit 不仅深入讲解了 Swift 宏的基础和进阶用法,还展示了如何在 Bilibili 会员中心模块开发过程中,通过自定义宏减少冗余代码的编写,优化整体开发体验。...但在某些情况下(如 List ),这一处理方式可能会阻碍性能优化。Vahter 提醒开发者留意该行为带来的影响,避免因误判而陷入调试陷阱。...Cursor 近期关于如何在苹果生态开发中使用 Cursor 的文章层出不穷,每篇文章都从不同角度分享了各自的见解和经验。...Junping[13] 强调了通过 Inject 实现在 Cursor 中构建类似 Xcode 预览的开发体验[14],展示了如何在新的工作流中替代传统工具。
pub 地址:https://pub.dev/packages/flutter_spinwheel 效果演示: 该演示视频展示了如何在Flutter中使用自旋轮。...它显示了如何在flutter应用程序中使用「flutter_spinwheel」软件包运行「旋转轮」,并显示了当您点击该项目时,旋转器将移动。同样,您将沿顺时针/逆时针的任何方向移动微调器。...应该在构造函数中处理它。 **shouldDrawBorder:**此属性用于确定是否应绘制边框。 **hideOthers:**此属性用于确定是否应绘制快门以隐藏除选定以外的所有选项。..., ]; choices = [ ['Kotlin', 'Swift', 'Dart', 'Java', 'Python', 'C#', 'Ruby', 'PHP'], ]; select...当我们运行应用程序时,我们应该获得屏幕的输出,如屏幕下方的截图所示。
、数据压缩,以及如何在实际开发中使用这些技术优化接口数据传输效率。...难度水平:困难摘要本篇文章将探讨如何在 Swift 中解决字符串分割问题,即将给定字符串根据字典中的单词构造出所有可能的句子。本问题属于经典的递归与动态规划问题,涉及搜索和记忆化优化。...递归中每次处理一个子串时,先检查是否已计算过结果。递归分割字符串 遍历字符串的所有分割点,将字符串划分为前缀和后缀。如果前缀在字典中,则递归处理后缀。最终将前缀和后缀的结果拼接成句子。...本方法利用了动态规划的思想,避免了重复计算,适用于字符串长度较小的情况(如本题中的限制 s.length Swift 爱好者共同维护,我们会分享以 Swift 实战、SwiftUI、Swift 基础为核心的技术内容,也整理收集优秀的学习资料。
迁移将分阶段进行,初始范围包括 Swift 项目的基础元素,如编译器、核心工具、标准库、核心 API、示例、Swift.org 网站以及官方客户端和驱动程序等。...作者强调他们主要出于学术原因对这个问题感兴趣,并且关注的是如何在 case 语句内引用枚举实例,而不是具体的处理逻辑。...这个问题探讨了 Swift 语言中枚举处理和模式匹配的高级用法,反映了对语言特性和语法糖的深入思考。...推荐博文 swift 使用 swift-protobuf 协议通讯,使用指北 摘要: 文章全面介绍了如何在 Swift 中利用 Swift-protobuf 进行高效的协议通信。...作者解释了 Protocol Buffers 的优势,如高效性、简洁性和版本兼容性,以及适用场景。
View通过delegate将should、will、did等动作的响应交给Controller处理。...介绍与使用实践 AFNetworking AFNetWorking一款轻量级网络请求开源框架,基于iOS和mac os 网络进行扩展的高性能框架 IOS 网络请求之 AFNetWorking 3.x 使用 FMDB...FMDB是iOS平台的SQLite数据库框架,FMDB以OC的方式封装了SQLite的C语言API [iOS]数据库第三方框架FMDB详细讲解 FMDB 使用方法 libextobjc libextobjc...9884f13074b8 Round 2 -如何做好IOS View的布局 如何做好IOS View的布局 如何布局UIViewController的view childViewController的处理...无论是否有navigationBar或tabBar都能够正常显示,且最好不需要自己去判断有没有navigationBar或tabBar 尽量避免hard code间距,如20,44,49等 (6) Effective
也许是时候重拾一些旧传统了,适时将部分数字记忆转化为实体形式(如纸质照片、手写文字等)。这不仅增加了一种备份方式,相较于纯数字化的体验,实体所带来的质感也更易唤起深藏的记忆。...前一期内容|全部周报列表 原创 如何在 SwiftUI 中平铺图片[3] Fatbobman( 东坡肘子 )[4] “这题我会!”。我想,看到本文标题时,这恐怕是大多数人的第一反应。...并针对开发者讲解了如何在自定义文本视图中集成 Writing Tools,如何控制 Writing Tools 的行为,以及如何处理特定文本范围(如代码块)等内容。...文章澄清了线程安全的概念,解释了 Sendable 和非 Sendable 类型的区别,并提供了处理相关问题的解决方案。...[3] 如何在 SwiftUI 中平铺图片: https://t.ly/sr3Ul [4] Fatbobman( 东坡肘子 ): https://x.com/fatbobman [5] 探索 Writing
用 Swift 来构建安卓应用 近日,Swift 社区成立了 Swift on Android Community Workgroup[4],旨在推动 Swift 在 Android 生态中的应用。...Rudrank Riyam[12]在本文中介绍了如何在 MLX Swift 中使用工具调用,并以实时天气查询为例,演示了从定义工具、解析 LLM 调用、获取天气数据到应用数据的完整流程。...在这篇文章中,方君宇详细介绍了 URL Scheme 和 Universal Link 的配置方法,并探讨了如何在 SwiftUI 中处理深层链接事件。...[18] .xcconfig文件是 Xcode 项目中去中心化管理构建配置的重要工具,能够帮助开发者将环境变量(如 API 地址、编译选项、日志级别)从 Xcode 界面和 Swift 代码中解耦出来。...此外,Mirza 还介绍了 Swift 编译器 (swiftc) 在处理 C 互操作时的关键参数,如-I、-L和-lfoo,确保 C 代码可以正确链接到 Swift 项目。
领取专属 10元无门槛券
手把手带您无忧上云