Objective-C运行时学习笔记-继承体系

其实也不好说是学习笔记还是复习笔记了,Objective-C 这语言从毕业开始一直用,直到 18 年前后换成了 Swift. 前几天看 JS 原型链的时候发现,这个和 OC 语言的继承体系好像啊,趁着这个机会回顾一下 OC 语言中的继承实现。 说起 OC 的继承实现就不能不提到支持 OC 这门语言运行的机制 runtime. 网上相关的文章已经介绍烂了,为了方便我自己之后回顾,我还是从自己理 ...

CoreData 学习笔记八-CoreData 实体增加属性并支持 iCloud 同步

最近项目中需要拓展一下已经定义好的实例字段,同时原本的实例是支持l iCoud 同步的,新增加实力(Entity)字段后,我们的预期是「老版本升级上来的用户能正常使用,同时还能正常进行 iCloud 同步」,即用户对字段升级毫无感知。 这篇文章就介绍技术实现的具体细节。 这里还是用 Student 学生这个实例来举例子,原始有 age, name, school 三个 ...

最新(2023)年申请苹果企业账号的流程

申请 AppleID 的时候,邮箱最好用自己的公司邮箱。 如果之前你公司邮箱的 AppleID 已经成为了某个企业开发者账号的 Owner 的话,最好换一个 AppleID 申请。 申请邓白氏编码 看这篇文章 2023年申请邓白氏编码流程 邓白氏编码申请完之后需要 ...

2023年申请邓白氏编码流程

邓白氏编码是注册苹果企业账户时验证流程的一部分。关于邓白氏编码,苹果官网有对它的明确说明。 > D-U-N-S 编号是一组唯一的九位数,用于根据具体位置识别企业实体。D-U-N-S 编号由 Dun & Bradstreet (D&B) 进行分配和维护,广泛用作标准的企业识别码。 > > > ...

iOS 接入兔小巢实践

最近给 App 接个问题反馈相关的功能,想到了兔小巢,尽管官方提供了文档来告诉我们接入的方式,不过接入的过程没有想象的那么顺利,所以记录一下。 为什么 App 没有匿名态 官方文档在这篇「在兔小巢中传递自己的登录态」文档里说明了移动端默认实现了用户无登录状态的接入(匿名/游客登录态)。 但是我的 App 按照官方文档接入后却没有这个状态,找了一圈发现,在知乎的这个帖子「[怎么回事?产品 ...

iOS 加载本地 HTML 的一些实践

在应用的一些不重要的界面(比如功能的使用说明页面)上使用 HTML 进行开发可以在不降低用户体验的基础上,加快开发效率。 这篇文章尝试介绍一些这方面的实践。 加载本地HTML 我们在本地创建好一个名为 index.html 的文件后,将文件拖入到 iOS 项目的 Xcode 工程中。 iOS 加载本地 HTML 的方式如下: let wkconfig = WKWe ...

解决CI+fastlane传包需要验证码的问题

fastlane 是 iOS 平台的一个自动传包工具,非常好用。 fastlane 使用过程中有个痛点是:在和 CI 工具集成的时候总是需要输入验证码,起因是苹果账号目前是强制开启二次验证的,系统会向信任的机器或者手机号发验证码,这时候就需要人手动输入,但是 CI 是没有交互环境的,所以就没办法顺利传包。 身份验证方式 官方提供了几种身份验证的方式如下,文档地址在[这里](https: ...

(2023)下载IPA应用包并提取图片素材方式

获取iOS应用图片素材大致需要两个步骤:1.下载应用; 2.从应用包中提取素材。 下载商店应用包 AppleStore 目前是没有提供官方的渠道来获取商店上的应用包,需要我们自己想办法获取。目前网上能看到的几种获取包的方式,有一些方式已经被废弃了,有一些还能用,这里都列出来给大家做个参考 找到低版本的 iTunes 下载安装。如果你当前 macOS 系统太高的话,会提示「您的系统 ...

Swift 字符串

官方定义 String 就是一组字符的集合。 和 Objective-C 不同, Swift 中的 String 是值类型,并且我们通过下标去访问字符串某个字符的时候,Swift 中下标的类型是 String.Index,而不是 Int.. 下标为何是 String.Index 类型? String.Index 的定义是「A position of ...

IGListKit 学习笔记二-数据变化驱动视图更新

IGListKit 的数据变更后刷新是通过 diff 算法比较数据变更差异,然后在界面上应用这些差异。 数据刷新主要有两种方式 performUpdates 以及 reloadDatas。 performUpdates 和 reloadData 的区别 performUpdates 基于 UICollectionView 的 `performBatchUpdates: ...