iOS 17新特性以及适配细节汇总
1、UIScrollView增加了属性allowsKeyboardScrolling表示是否根据连接的物理键盘的方向键而滚动。 import UIKit class ViewController: UIViewController { lazy var scrollView: UIScrollVie ...
万字长文详解如何使用Swift提高代码质量
京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。之后一年多我们持续在团队/公司内部推广和普及Swift,目前Swift已经支撑了70%+以上的业务。通过使用Swift提高了团队内同学的开发效率,同时也带来了质量的提升,目前来自Swift的Crash的占比不到1%... ...
iOS开发 - Swift Codable协议实战:快速、简单、高效地完成JSON和Model转换!
Codable 是 Swift 4.0 引入的一种协议,它是一个组合协议,由 Decodable 和 Encodable 两个协议组成。它的作用是将模型对象转换为 JSON 或者是其它的数据格式,也可以反过来将 JSON 数据转换为模型对象。 ...
Swift之struct二进制大小分析
随着Swift的日渐成熟和给开发过程带来的便利性及安全性,京喜App中的原生业务模块和基础模块使用Swift开发占比逐渐增高。本次讨论的是struct对比Class的一些优劣势,重点分析对包体积带来的影响及规避措施。 ...
给我两分钟的时间:微博风格九宫格:UICollectionView实现
引言 UICollectionView 是 iOS 平台上一种强大的视图布局工具,能够很好地实现网格布局,列表布局等多种布局方式。 首先讲下今天的目标,我们将要使用 UICollectionView 来创建仿微博的九宫格内容。首先,目标行数为3,每行显示3张图片,总共显示9张图片。 实现方式 我们往 ...
IOS开发之免费证书+不越狱真机调试
苹果发布Xcode 7之后,可以打开正常的AppleID或实机上载,而不是$ 99或$ 299,只要你可以在AppStore下载应用程序的AppleID。关于Mac系统和Xcode的安装,如果不请参见原文描述,这里只介绍使用Xcode7和普通AppID创建免费证书、个人资料。 文中测试环境是OSX ...
swift 闭包本质,闭包表达式,尾随闭包
1. 闭包 一个函数和它所捕获的变量/常量环境组合起来,称为闭包 一般指定义在函数内部的函数 一般它所捕获的是外层函数的局部变量/常量 typealias fn = (Int) -> Int func getFn() -> fn{ var count = 0 func sum(_ i: Int) - ...
【Swift】GRDB数据库本地存储聊天记录
// // DataManager.swift // GRDBDemo // // Created by Apple on 2021/4/21. // import GRDB struct DataBaseName { /// 数据库名字 static let test = "conversatio ...
【Swift/Objective-c】公司项目优化(二) - 下拉刷新抖动问题
使用MJRefresh进行列表下拉刷新时,会出现列表上下颤抖问题 抖动的原因 我们先来看看在手松开之后我们对scrollView做了什么事情: ScrollViewDidEndDragging => setContentInset: 为了保证在“Loading”的状态下,下拉刷新控件可以展示,我们对 ...
【Swift】拆分小说阅读器功能,分享内部实现
公司项目结束了,公司估计也快黄了,年底事少,也给了我不少时间来维护博客。 公司的项目是一个类似于简书的创作平台,涵盖写作、小说、插画内容。 本期主要先下小说阅读部分,UI样式仿照的是微信读书样式,因之前也写过小说阅读器,但是代码并没有解耦,这次彻彻底底做一次大改动。 小说用户的常见操作:当前阅读进入 ...
【Swift】公司项目性能优化(一)
随着项目开发接近了尾声,改Bug和性能优化成了工作的重中之重,移动端开发,最注重用户体验,一个丝滑般的应用程序能在用户心里加很多印象分。 1、优化列表的滑动速度 作为内容创作类的app,里面包含了大量的写作、画作、小说、动态等多种动态高度的样式;列表滑动不卡顿,就成了用户体验的关键问题。 1)Aut ...
Swift whit Xcode 递归枚举实现(使用枚举模拟加减乘除复合运算)
//递归枚举值实例 enum Expression{ //单个数值 case num(param:Int) //表示加法运算 将Expression作为相关值参数类型 indirect case add(param:Expression,param2:Expression) //表示减法运算 将Ex ...
CocoaPods安装 详细
开始安装 1 安装需要⽤到Ruby,虽然Mac⾃带了Ruby,不过版本有点⽼了,最好更新⼀下 sudo gem update --system 2 接下来输⼊系统密码就可以安装了,输⼊密码时不会显⽰的,输完回车就⾏了 3 因为Ruby的软件源rubygems.org被屏蔽了,所以要更换源 gem s ...
【iOS】UITextField中的输入检测——限制只能输入数字和小数点
问题提出 最近趁着放假时间,在看The Big Nerd Ranch的iOS编程,想着重新复习一遍iOS开发的基础知识 书中第四章有一个温度转换的app实现,整体实现并不难 其中有个问题——如何利用UITextFieldDelegate委托限制UITextField的输入 问题背景 UITextFi ...
OC方法交换swizzle详细介绍——不再有盲点
原文链接:https://www.cnblogs.com/mddblog/p/11105450.html 如果对方法交换已经比较熟悉,可以跳过整体介绍,直接看常见问题部分 整体介绍 方法交换是runtime的重要体现,也是"消息语言"的核心。OC给开发者开放了很多接口,让开发者也能全程参与这一过程。 ...
博问已解决问题»
- PortableApps等U盘使用的便携软件数据存储问题?
- 什么是云计算?它有哪些主要服务类型和应用?
- 使用阿里云计算巢部署 DeepSeek-R1 遇到问题
- DeepSeek 官方平台是否提供了生成 embedding 的 api 以及 token 费用是多少
- clickhouse pod 无法启动
- EPPlus 读取 xlsx 文件异常,提示 Bad signature (0x71CA947A) at position 0x010B6489
- 请教大神们一个halcon图像相似度的问题
- angular 项目 build 时报错:"TS2688: Cannot find type definition file for 'faker'"