Swift使用SnapKit模仿Kingfisher第三方扩展优化
目录正文SnapKit扩展方式简要思考Kingfisher扩展方式简要思考自行模仿尝试最后正文
我们平时用swift写第三方扩展(OC中的分类)时,可能会直接就往扩展里面写方法,简单又方便,然而当我们看一些常用你的三方(例如:Kingfisher、SnapKit)等,都会用一个简单的参数引出(例如:kf、snp),下面来探索一下怎么用的,然后在总 ...
【IOS实用玩机技巧】爱思助手 IPA 签名功能常见问题汇总
爱思助手 IPA 签名功能常见问题汇总
使用 Apple ID 签名 IPA 文件也就是常说的“个人签”,很多小伙伴在使用Apple ID签名时,有时候会出现证书申请失败,或者签名失败,这类报错信息。
以下汇总爱思助手 IPA 签名功能在使用时可能遇到的问题和解决办法。
1.安装已签名的软件需要越狱吗?
不需要。不论是使用证书签 ...
判断 ScrollView List 是否正在滚动详解
目录正文方法一:Introspect方案一优点方案一缺点方法二:Runloop方案二优点方案二缺点方法三:PreferenceKey方案三优点方案三缺点IsScrolling总结正文
判断一个可滚动控件( ScrollView、List )是否处于滚动状态在某些场景下具有重要的作用。比如在 SwipeCell 中,需要在可滚动组件开始滚动时,自动关闭已经打开的侧滑菜 ...
swift语言Codable 用法及原理详解
目录Codable Codable 的用法JSON 和 模型的相互转换解码(JSON Data -> Model):编码(Model -> JSON Data):Codable 支持的数据类型基础数据类型Date嵌套对象枚举自定义 CodingKeysCodable 的原理Decodable 协议Container核心原理分析(Container <--> JSON)JSONDecoder 的解码过程编译器帮我们做了什么?默认值问 ...
Swift Extension扩展得使用详细介绍
目录扩展(Extension)协议与初始化器协议泛型扩展(Extension)
1、Swift中的扩展,有点类似于OC中的分类(Category)
2、扩展可以为枚举、结构体、类、协议添加新功能
可以添加方法、计算属性、下标、(便捷)初始化器、嵌套类型、协议等等
3、扩展不能办到的事情
不能覆盖原有的功能
不能添加存储属性,不能向已有的属性 ...
swift语言AutoreleasePool原理及使用场景
目录使用场景NSAutoreleasePool@autoreleasepool__autoreleasing源码分析__AtAutoreleasePool结构体AutoreleasePoolPagePOOL_BOUNDARY多层嵌套pushautoreleaseFastautoreleaseFullPageautoreleaseNoPageaddpoppopPagereleaseUntilautoreleasehotPagecoldPage调试_objc_autoreleasePoolPrintUIApplicationMain释放时机区分ru ...
Swift运算符使用方法浅析
目录溢出运算符(Overflow Operator)运算符重载(Operator Overload)EquatableComparable自定义运算符 (Custom Operator)溢出运算符(Overflow Operator)
1、Swift的算数运算符出现溢出时会抛出运行时错误
var v: UInt8 = UInt8.min
v -= 1
2、Swift有溢出运算符(&+、&-、&*),用来支持溢出运算
var v1 = UInt8.min
va ...
ios开发 try-catch引起的野指针问题排查
目录1、野指针问题2、崩溃栈3、场景复现代码4、问题分析5、上报可能引起野指针崩溃栈1、野指针问题
【EXC_BAD_ACCESS (SIGSEGV) / KERN_INVALID_ADDRESS]
Possible zombie in call: Function: objc_releaseParam 1: 0x157f2a740 Originated at or in a subcall of unknown, cannot find symb
如有以下崩溃栈可以怀疑是在dea ...
Swift Access Control访问控制与断言详细介绍
目录访问控制(Access Control)访问级别的使用准则元组类型泛型类型成员、嵌套类型getter与setter初始化器枚举类型的case协议扩展将方法赋值给var\let一些补充知识CustomStringConvertibleSelfassert (断言)fatalError访问控制(Access Control)
1、在访问权限控制这块,Swift提供了5个不同的访问级别(以下是从高到低排 ...
替代pod update速度慢的lg_pod_plugin安装使用详解
目录1. 安装方式2. 如何使用lg_pod_plugin3. 工作原理1. 安装方式
推荐使用bundle 安装lg_pod_plugin , 免去手动安装 gem install lg_pod_plugin , 方便后续升级lg_pod_plugin版本, 适合团队开发, 总不能让所有人在自己电脑上都安装一次 lg_pod_plugin吧.
创建 Gemfile 文件
bundle init #初始化一个bundle 环境, 类似于pod ...
关于ios低版本在app store下载软件时由于版本低导致不能下载的解决办法
最近有人提出问题,说IOS7怎么在APP store中下载软件,好多软件都提示需要ios8及以上才可以下载,而App Store里下载又不会提供给你旧版本,难倒ios7就必须升级才能下载吗?对此本人在网上查了好多资料也做了好多测试,大多数说的都是升级系统(这纯属废话,要是升级系统还用问你啊),终于皇天不负有心人,经过多次 ...
APP上架需要的准备和流程
一 上架iOS应用市场前的准备
1.选择适合自己的苹果开发者账号
(1) 个人账号(Individual):费用99美金一年, 该账号在App Store销售者只能显示个人的ID,比如zhitian zhang,单人使用。个人账号只能有一个开发者。100个苹果的iOS设备UDID测试。
(2) 公司/机构账号(Company/Organization):费用99美元一年, 该账号在A ...
iOS-申请开发证书流程
1、开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的;
2、appID,这是每一个应用的独立标识,在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter,以及更常见的pus ...
iOS开发各种证书详解
引言
关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾。对于一个iOS开发小白、半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以下不详、疑问、疑惑甚至困惑:
什么是App ID?Explicit/Wildcard App ID有何区别?什么是App Group ID?
什么是证书(C ...
ios利用RunLoop原理实现去监控卡顿实例详解
目录一、卡顿问题的几种原因二、监测卡顿的思路监测FPS:RunLoop:三、如何检查卡顿一、卡顿问题的几种原因
复杂 UI 、图文混排的绘制量过大;
在主线程上做网络同步请求;
在主线程做大量的 IO 操作;
运算量过大,CPU 持续高占用;
死锁和主子线程抢锁。
二、监测卡顿的思路
监测FPS:
FPS 是一秒显示的帧数,也就是一秒 ...
【2021】IOS证书(.p12)和描述文件(.mobileprovision)申请
IOS 证书与描述文件申请
前言
前置条件(申请环境)
申请流程
一、申请苹果APP ID
二、添加调试设备
三、申请证书请求文件
四、申请开发证书和描述
五、申请发布证书和描述
前言
IOS 有两种证书和描述文件
证书类型描述文件
开发(Development)证书和描述文件用于开发测试,在 HBuilderX 中打包后可 ...
iOS开发xconfig和script脚本使用详解
目录引言Xcode编译Xcode targetXcode projectXcode scheme新建configurationConfiguration文件的使用利用Configuration设置不同的项目名设置Configuration查看是否设置成功设置Info.plist测试是否生效利用xconfig文件实现OC条件编译xconfig文件的设置Swift中条件编译的实现script的使用script的初步认识script的实际运用总 ...
iOS 上传应用到APPStore 详细版
现在仔细写个上传应用的过程,希望可以帮助到有需要得人
上传应用第一步:去到苹果开发者中心https://developer.apple.com/account/ios/certificate/certificateList.action?type=developmenta按照图片里的标示一步步来
先去给工程注册个APP IDs如果已经有了就不用重新注册了 ...
iOS 上传AppStore 被拒汇总
、苹果要求版本更新必须使用iOS版本更新内置更新机制。 4. Design: Preamble Design Preamble Your app includes a responsive version button or alerts the user to update the app. To avoid user confusion, app version updates must utilize the iOS built-in update mechanism. Please see attached scre ...
iOS界面布局简化UIStackView使用详解
目录前言UIStackView布局思想distribution:alignment:UIStackView用法初始化添加、删除子视图排列方向布局方式对齐方式间距前言
在过去iOS页面布局较为传统,大多数人使用Frame或者AutoLayout来布局,在iOS9以后,引入了UIStackView。UIStackView是用于线性布局的控件,可以自动管理子视图布局,自动填充。它借鉴了前端的 ...