草庐IT

建立你自己的iOS开发知识体系

二斤寂寞 2023-09-21 原文

目录:
iOS 整体框架及类继承框架图
iOS总体框架介绍和详尽说明
Objective-C库

iOS资源大全中文版
美团文章

Swif相关

00-Swift简介
00-汇编语言
01-基础语法
02-流程控制
03-函数
04-枚举
05-可选项
06-结构体和类
07-闭包
08-属性
09-方法
10-下标
11-继承
12-初始化
13-可选链
14-协议
15-错误处理
16-泛型
17-String与Array
18-高级运算符
19-扩展
20-访问控制
21-内存管理
22-字面量
ing

底层相关

iOS底层原理总结 - 探寻Class的本质
iOS底层原理总结篇-- 探寻OC对象的本质
iOS底层原理总结篇-- OC对象的分类

KVO 通知 KVC相关

iOS底层原理总结篇-- 深入理解 KVO 实现机制
模拟实现通知中心 iOS
iOS底层原理总结篇-- 深入理解 KVC 实现机制
KVC一些用法

Category

iOS底层原理总结 - 关联对象实现原理
iOS底层原理总结篇-- Category的本质
美团-深入理解Objective-C:Category
load和initialize方法的区别是什么?

Block

iOS底层原理总结 - 探寻block的本质(一)
iOS底层原理总结 - 探寻block的本质(二)
Block相关面试点详解

Runtime

iOS底层原理总结 - 探寻Runtime本质(一)
iOS底层原理总结 - 探寻Runtime本质(二)
iOS底层原理总结 - 探寻Runtime本质(三)
iOS底层原理总结 - 探寻Runtime本质(四)
OC中isKindOfClass和isMemberOfClass的区别
Runtime图解
Runtime 10种用法
使用Runtime防止数组、字典越界
FFExtension:主要用于降低iOS APP的常见崩溃
performSelector传递两个以上参数
Runtime经典面试题(附答案)
Runtime全方位装逼指南
学习 Aspects 源码

Runloop

iOS底层原理总结 - 探寻Runloop本质

多线程

iOS底层原理总结 -多线程详解

内存管理

内存管理
ios属性的关键字

网络

网络
知识点

Foundation框架

GNUstep查看Foundation源码
Foundation概述
常用结构体
NSDate
NSString类详解
NSString内存管理
ios中URL字符串的URLencode与URLdecode
数组
字典
装箱和拆箱
反射
拷贝
NS_ASSUME_NONNULL_BEGIN 和 NS_ASSUME_NONNULL_END
#if 和#ifdef的区别
关于FOUNDATION_EXTERN #define extern
iOS Device ID
ios关键字、泛型
(最全)iOS 沙盒文件目录、数据持久化的几种方法
NSDataDetector取代iOS的某些正则表达式:URL,电话,日期,地址

UIKit框架

UIKit框架各个类的简要说明
iOS 应用的生命周期
iOS - View生命周期
iOS - ViewController生命周期
loadView、viewDidLoad及viewDidUnload的关系
iOS中触摸事件传递和响应原理
iOS触摸事件详解
CALayer和UIView的关系
UIWindow的windowLevel属性
使用Masonry约束tableHeaderView,解决错位问题
IOS之自定义tabBar
iOS导航模式
iosNav 黑线问题
UITextField基本使用
UIButton(图文位置,渐变色,扩大点击范围)
推荐一个BasicDemos-iOS
UIScrollView详细介绍
UIScrollView的用法
多层 UIScrollView 嵌套滚动解决方案
iOS开发中解决UIScrollView滚动时NSTimer失效的问题
PageControl
一篇文章弄懂tableview的contentSize、contentOffset和contentInset
整洁的 Table View 代码
优化UITableViewCell高度计算的那些事
UICollectionView 详解
iOS 上的 FlexBox 布局

设计模式

23种设计模式及案例,你看我就完事了。 部分
iOS单例模式

iOS优化

ios代码瘦身
iOS程序启动->dyld加载->runtime初始化
ios启动优化
iOS 启动优化 + 监控实践
抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15%
iOS性能优化详尽总结
iOS性能优化-相关文章集合

代码混淆

iOS 代码混淆 && 垃圾代码

Apple新特性

iOS-UniversalLink开发

第三方库相关

SDWebImage - 源码解析
ios UNNotificationServiceExtension app和extension的通信
JsonModel升级警告问题
MLeaksFinder:测试内存泄露
TTTAttributedLabel的神坑

cocoapods、framework、.a、多工程、git、gitflow等

cocoapods创建私有库的问题
使用cocoapods创建私有库
cocoapods
Xcode 创建.a和framework静态库
解决pod lib lint/repo push不支持i386编译&只能真机运行的库
codeReview简略操作
git 原理

iOS打包

ios命令打包

算法

字符串逆序输出
链表翻转的图文讲解(递归与迭代两种实现)
冒泡排序
选择排序

Mac工具相关

Mac如何删除用户
Mac 更改Dock显示的大小
Mac 修改桌面文件夹大小
Mac 如何开启任何来源选项
Mac 配置多个ssh-key
Charles抓https
Mac下node版本管理工具nvmy以及npm简介,卸载问题集合
gitbook
FoxMail 发送不了邮件及打卡IMAP/SMTP服务
百度网盘不限速下载
WebStorm2018 for Mac 破解安装
iOS用TestFlight测试
iTerm2 高级配置
Mac上提高效率的软件

面试题收集

iOS面试题01
备战2020——iOS全新面试题总结

Other

关于FOUNDATION_EXTERN #define extern
BitCode
详解大端模式和小端模式
ios公司账号申请
最全详解 | 2018年苹果审核指南最新更新条款①
2018苹果审核及被拒问题收集
App Store 注册美区 Apple ID 帐号终极指南
iOS APP转让
ios忽略警告问题
iOS屏幕尺寸
越狱相关

Xcode

Xcode 问题汇总
Xcode 版权问题看我一篇就够了
XCode 10 错误 Multiple commands produce
ios-导入头文件快捷方式
Xcode操作流

大神博客

转载大神的github文章

有关建立你自己的iOS开发知识体系的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  4. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  7. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  8. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  9. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  10. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

随机推荐