-
启动图不更新问题
参考文章:完美解决LaunchScreen.storyboard启动图更新失效问题 参考文章:iOS解决LaunchScreen图片显示问题:白屏、黑屏、不显示、显示旧的图片等等问题目录 启动图更新后不生效启动图更新后没有生效,还是显示的老的启动图片。 删除APP,clean工程都不生效。解决办法xcode有缓存,新替换的启动图片不要放在asset内,放在工程的目录下,并且更改一个新名字重要更新: 在使用LaunchScrenn.storyboard时,启动图片在大小或...…
-
内存泄露的检测
目录 内存泄露 Leaks的使用内存泄露一、Leaked Memory: 未被程序引用,但也无法释放的内存。1、在MRC下比较常见,在ARC下由于有自动引用计数,在编译时会自动添加release,所以比较少见。 2、但在ARC机制下,使用CF或CG对象时,忘记手动调用CFRelease或CGRelease会出现。 3、手动开辟了堆空间,而没有手动释放也会出现。二、Abandoned Memory: 被程序引用,无用但也无法释放的内存。主要是循环引用 1、bloc...…
-
App间的相互跳转
目录 一、配置 二、说明一、配置要通过 URL Scheme 实现从 App A 跳转到 App B,然后从 App B 返回到 App A,你可以按照以下步骤进行:一、配置 App B 的 URL Scheme首先,App B 需要支持 URL Scheme,以便 App A 能够调用它。1、在 App B 中配置 URL Scheme 在 App B 的 Info.plist 文件中,注册一个唯一的 URL Scheme。例如,将 Scheme 命名为 appb。打开 Ap...…
-
Other Linker Flags
目录 一、other linker flags 二、-Objc/-all_load/-force_load 三、补充一、other linker flagsOther Linker Flags 是 Xcode 中的一个编译选项,用于在编译项目时向链接器(linker)传递额外的命令行参数。链接器的作用是将编译生成的目标文件(object files)和依赖的库文件链接在一起,生成最终的可执行文件或库文件。一、Other Linker Flags 的用途1、指定库文件: 用来链接额外...…
-
配置及编译项介绍
目录 Build Phases Build SettingsBuild Phases一、Target Dependencies用于指定当前目标(Target)所依赖的其他目标(Targets)自动处理依赖关系:Xcode 会在构建当前目标之前,优先构建它所依赖的目标。target我们自己的代码如果它是被依赖的,构建时优先构建它。二、Link Binary With Libraries将系统库和三方库链接到应用程序中,使用这些库提供的功能。系统库和三方库:我们拿到的是二进制文件没有源码B...…
-
OC是动态语言
目录 语言的动态特性 语言的静态特性Objective-C是一种动态语言,但它也具有静态语言的一些特性。 以下是对Objective-C动态性和静态性的详细解释:语言的动态特性动态类型检查变量的类型可以在运行时检查和改变。比如 id 类型id dynamicObject = [SomeClass new];if ([dynamicObject isKindOfClass:[SomeOtherClass class]]) { // Do something with dynamic...…
-
配置Beta环境
1、创建两个config文件,内容拷贝 Enterprise的文件内容,并做相应修改2、在 PROJECT -> Df2-ios下面配置增加Beta并配置config文件增加一个Beta环境(通过复制Enterprise)3、在TARGET -> df2-ios -> Build Setting 下面配置环境变量4、在TARGET -> df2-ios -> Build Setting 下面配置显示的app的名字注意配置的优先级,1的优先级是高于2的优先级的(...…
-
使用第三方字体
参考文章:iOS开发第三方字体使用目录 介绍介绍一、将字体文件添加到项目中: 将你的字体文件(通常是 .ttf 或 .otf 格式)添加到 Xcode 项目中。确保在项目设置中将这些文件包含在目标中。 在target - Build Phases - Copy Bundle Resources 中是否包含了字体文件二、更新 Info.plist 文件: 在 Info.plist 文件中添加字体文件的条目。 在 “Fonts provided by applicat...…
-
UniversalLinks
参考文章:iOS Universal Link使用总结 参考文章:iOS配置Universal Links目录 介绍 如何配置 原理分析 微信SDK集成 如何通过UniversalLinks打开app介绍Universal Link是Apple在WWDC上提出的iOS9的新特性之一; 能够方便的通过打开一个HTTPS链接来直接启动您的客户端应用,当然前提条件是您必须在手机上安装了此App;应用场景: 1、从浏览器启动你的app 2、从其他App的WebVie...…
-
事件传递和响应者链
目录 事件传递 响应者链事件传递1、事件传递1、iOS 检测到手指触摸,打包成一个UIEvent对象 2、springBoard 3、通过端口传递给当前进程 4、触发sorce1回调 5、soruce0回调 6、放入当前活动Application的事件队列 7、UIApplication 会从事件队列中取出触摸事件并传递给单例的 UIWindow 来处理 8、UIWindow 对象首先会使用 hitTest:withEvent:方法 9、方法内部调用pointIns...…
-
权限
目录 相册权限 相机权限 定位权限 NFC权限相册权限+ (void)photosWithIsShowNoAuthorizedAlert:(BOOL)isShow isOnlyAdd:(BOOL)isOnlyAdd authorized:(void(^)(BOOL isAuthorized))authorized { /** PHAuthoriza...…
-
深色模式适配
参考文章:iOS13原生端适配攻略(推荐) 参考文章:iOS13 暗黑模式(Dark Mode)适配目录 深色模式 全局关闭深色模式 指定页面关闭深色模式 全局适配黑暗模式 工程适配思路深色模式针对深色模式的推出,Apple官方推荐所有三方App尽快适配。目前并没有强制App进行深色模式适配。因此深色模式适配范围现在可采用以下三种策略: 全局关闭深色模式 指定页面关闭深色模式 全局适配黑暗模式 全局关闭深色模式方案一:在项目 Info...…
-
通知与推送
参考:Lebus-2019年12月录 iOS13+Swift5通知与推送 本文是上面课程的摘要,只用于自己快速浏览.目录 常用通知 一、本地通知 二、通知的增删改查 三、自定义通知界面 四、远程通知 五、其它常用通知// 回后台通知UIKIT_EXTERN NSNotificationName const UIApplicationDidEnterBackgroundNotification // 回前台通知UIKIT_EXTERN NSNotificationName...…
-
dyld分析
目录 什么是dyld dyld加载流程 符号绑定什么是dylddyld(the dynamic link editor)是苹果的动态链接器,是苹果操作系统一个重要组成部分,在系统内核做好程序准备工作之后,交由dyld负责余下的工作。dyld加载所有的库和可执行文件。dyld加载流程一、程序执行从_dyld_star开始在工程任一个类的load方法打断点,看下调用栈(lldb) bt* thread #1, queue = 'com.apple.main-thread', stop r...…
-
AFN源码分析(二)
本篇来分析下AFN加载图片的源码。UIImageView+AFNetworking代码如下:[self.imageView setImageWithURL:[NSURL URLWithString:self.imageUrl] placeholderImage:nil];目录 缓存处理 下载器 调用实现缓存处理缓存处理的代码逻辑在下面文件内:AFAutoPurgingImageCache.h文件 AFAutoPurgingImageCache.m文件一、AFAutoPurgingI...…
-
AFN源码分析(一)
参考文章:iOS 中对 HTTPS 证书链的验证 参考文章:SSL详解(个人理解) 参考文章:iOS网络请求认证挑战目录 单向认证 单向认证的securityPolicy 双向认证 双向认证securityPolicy AFHTTPDisposition实现 说在最后单项认证单向认证的securityPolicy一、默认方式(CA签发证书)AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];man...…
-
MachO文件
目录 什么是MachO文件 universal binary MachO文件结构什么是MachO文件一、Mach-OMach-O其实是Mach Object文件格式的缩写,是macOS、iOS、iPadOS存储程序(可执行文件)和库的文件格式,对应系统通过应用二进制接口(application binary interface,缩写为 ABI)来运行该格式的文件。ABI稳定指的是Mach-O文件的内部结构稳定了下来,相应的系统在调用解析Mach-O文件时的流程也就稳定了下来.类似于w...…
-
Atomic的安全性
参考文章:Atomic原子操作原理剖析目录 原子操作 原理原子操作所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。如果这个操作所处的层(layer)的更高层不能发现其内部实现与结构,那么这个操作是一个原子(atomic)操作。原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分。将整个操作视作一个整体是原子性的核心特征。@prop...…
-
bitcode
参考文章:关于bitcode, 知道这些就够了目录 简介 作用 生成.ll文件 Enable Bitcode简介先来看个llvm的经典图片bitcode是由LLVM引入的一种中间代码(Intermediate Representation,简称IR),它是源代码被编译为二进制机器码过程中的中间表示形态,它既不是源代码,也不是机器码。从代码组织结构上看它比较接近机器码,但是在函数和指令层面使用了很多高级语言的特性。作用在这个体系中,不同语言的源代码将会被转化为统一的bitcode...…
-
设备唯一标识
目录 iOS获取设备的唯一标识的方法总结:https://www.jianshu.com/p/686958c352f1 行者常至,为者常成!…