这篇文章列出了9种常见的crash,原文写得很好,我这里对照我自己遇到过的情况再整理记录下。(一)KVOKVO的一种常用场景是view对象监听view model对象实现实时刷新UI,例如有一个table view,每个cell都监听对应的cell model,这样数据源数组中只有一个对象的属性发生改变时就不需要reload整个列表。使用KVO有一个常见的crash就是没有移除监听,我们需要在de
转载 2024-10-29 16:02:41
24阅读
       前两天接到个面试,面试官问到上线的app怎么避免闪退,首先想到的就是在编码的时候进行各种容错,但貌似并不是面试官想要的答案,所以表现的很糟糕。今天有时间就来整理一下,希望有所帮助。实现效果如图: 效果实现: 用法:1.将截图的中CatchedHelper文件夹拖到你的项目工程中。 2.在AppDelegate.
转载 2023-12-17 11:36:48
137阅读
IoC全称Inversion of Control即控制反转,它还有一个别名依赖注入。spring利用Ioc容器帮我们自动构建对象及注入依赖对象,减少了对象构建与业务代码的耦合,使得我们能够更加高效愉快的写bug?了( ̄▽ ̄)"。接下来我们详细介绍下这个spring Ioc吧。依赖注入原理1.三种依赖注入方式spring中有三种常见的依赖注入方式即:构造方法注入、setter方法注入、接口注入。其
前言iOS 原生代码的编译调试,都是通过一遍又一遍地编译重启 APP来进行的。所以项目代码量越大,编译时间就越长。虽然我们可以将部分代码先编译成二进制集成到工程里,来避免每次都全量编译来加快编译速度,但即使这样,每次编译都还是需要重启App,需要再走一遍调试流程。幸运的是,John Holdsworth 开发了一个叫做 InjectionIII 的工具可以动态地将 Swift 或 Objectiv
随着app不断的迭代,代码会变得越来越多,经过N个人的持续N年的代码,维护起来越来越难,也很难保证测试case覆盖所有场景。举一个例子:如果原来服务器返回的是数组,而现在返回字符串,如果代码上没有添加判断,很可能就会造成“unrecognized selector sent to instance”,谁也不知道当初这么写的逻辑,没人敢动老代码。几万甚至数十万行的代码,这样的风险不可避免。我的希望就
iOS app - 使用Cycript修改微信app1.安装Cycript官网地址:http://www.cycript.org/debs/?
原创 2023-04-09 20:38:35
115阅读
# iOS 死锁防护 在开发 iOS 应用程序时,我们常常会遇到多线程的情况。多线程可以有效地提高应用程序的性能,但与此同时,线程的协调与管理也容易引发一些问题,其中最为严重的一个就是死锁。 ## 什么是死锁? 死锁是一种特定的情况,其中两个或多个线程因为彼此等待而无法继续执行。简单来说,线程A在等待锁B,而线程B又在等待锁A,这样就形成了一个封闭的等待圈,导致程序无法继续执行。 ###
原创 9月前
37阅读
# iOS 死锁防护指南 ## 引言 在 iOS 开发中,死锁是一个常见且棘手的问题。它通常会导致应用程序在特定情况下宕掉,使得用户体验变差。为了确保应用程序的稳定性,我们需要采取措施来防护死锁。在这篇文章中,我们将逐步探讨如何实现 iOS 死锁防护。 ## 死锁防护流程 以下是实现 iOS 死锁防护的主要步骤: | 步骤 | 描述 | | ---- | ---- | | 1 |
原创 9月前
9阅读
在移动应用开发中,iOS应用崩溃是一个常见的问题,尤其在大型项目中。无论是由于意外的错误、内存泄漏,还是其他未捕获的异常,崩溃都会对用户体验产生负面影响。为了解决这一问题,本文将详细阐述“iOS Crash 防护”的解决方案,包括环境准备、集成步骤、配置详解、实战应用、排错指南和性能优化。 ## 环境准备 在深入实施“iOS Crash 防护”之前,首先需要准备好开发环境,确保所有依赖包正确安
原创 6月前
64阅读
文章目录前言I 、Powerful private methods1.1 定位`view`1.2 定位 `按钮地址`II、 快速定位按钮对应的`allTargets `、`allControlEvents `、 `actionsForTarget
原创 2021-09-07 13:36:24
10000+阅读
文章目录一.元组1 元组简介二.字典1. 字典简介1.1 字典的基本介绍2. 字典的使⽤2.1 dict() 创建字典2.1 get()2.2 update()2.3 del2.4 popitem()2.5 pop()2.6 clear()3. 深拷贝和浅拷贝3.1 copy()3.2 deppcopy()4. 遍历字典4.1 keys()4.2 values()4.3 items()三. 集合
苹果电脑从 macOS 10.11 开始引入了系统完整性保护机制SIP(System Integrity Protection),目的是帮助普通用户避免恶意 app 通过用户授权的方式获得所有系统权限。通过 System Integrity Protection,苹果实现了对第三方软件的限制,有一些操作永远不被允许,恶意软件无法通过用户授权的方式从而获得所有系统权限了。但同时也影响到了一些我们平常
转载 2023-12-06 17:26:52
94阅读
本文首发于我的个人博客:『不羁阁』 文章链接:传送门 本文更新时间:2019年
原创 2019-09-14 10:11:52
185阅读
在当今的数字化环境中,移动设备安全尤为重要,特别是对于iOS平台,因其广泛使用和敏感数据的存储。如应用程序遭到攻击或用户数据被泄露,都会对公司信誉和用户隐私造成重大影响。因此,提升iOS应用的安全防护显得尤为重要。本文将详细记录如何在iOS应用中实施安全防护,涵盖环境准备、集成步骤、配置详解、实战应用、性能优化和生态扩展等步骤。 ## 环境准备 在进行iOS安全防护集成之前,我们需要准备好相关
原创 6月前
92阅读
熔断当某个服务调用慢或者有大量超时现象(过载),系统停止后续针对该服务的调用而直接返回,直至情况好转才恢复调用。这通常是为防止造成整个系统故障而采取的一种保护措施,也称过载保护。很多时候刚开始,可能只是出现了局部小规模系统故障,但后来故障影响的范围越来越大,最终导致了全局性的后果。 限流对某个服务调用设置最高QPS阈值,高于阈值的请求放弃调用直接返回。这种模式不能解决服务依赖的问题,只能
本文首发于我的个人博客:『不羁阁』 文章链接:传送门 本文更新时间:2019年08月29日12:37:11本文是 『Crash 防护系统』系列 第二篇。通过本文,您将了解到:KVO Crash 的主要原因 KVO 防止 Crash 的常见方案 我的 KVO 防护实现 测试 KVO 防护效果文中示例代码在: bujige / YSC-Avoid-C...
原创 2019-08-29 17:20:47
228阅读
iOS 的崩溃防护是现代应用开发中不可或缺的一部分。不论是因内存管理不当、API调用不当,还是数据处理异常,这些问题都可能导致应用崩溃,影响用户体验。通过有效的崩溃防护方案,我们可以显著降低崩溃事件的发生频率,提高应用的稳定性和可靠性。 在本文中,将详细介绍如何解决 iOS 崩溃防护问题的过程,涵盖从最初的技术痛点到设计高可用架构、实施性能优化、总结复盘到开源贡献等多个方面。 ### 背景定位
原创 5月前
2阅读
# iOS中的野指针防护iOS开发中,野指针(Dangling Pointer)是一种常见的错误,它发生在指针指向的内存已经被释放或未被分配时。使用野指针可能导致不可预测的行为和崩溃,严重影响应用的稳定性。为了防护野指针问题,iOS引入了一些技术和实践,下面我们详细探讨这些方法,并通过代码示例演示如何有效防护。 ## 野指针的定义 \"野指针\"是指一个指针指向了一个已经释放或未分配的内
原创 2024-10-10 06:23:37
62阅读
iOS开发中,应用崩溃是一件极其让人头痛的事情。为解决这个问题,我们可以借助“iOS Crash 防护框架”,其不仅帮助捕捉和处理崩溃,还能够为我们提供更好的用户体验。现在就让我带着大家来深入了解这个框架的使用及相关的内容。 ### 版本对比 首先,我们来看看“iOS Crash 防护框架”的版本演进史和特性对比。这个过程非常重要,因为每个版本的演进都解决了一些特定的崩溃问题。 ####
原创 6月前
29阅读
其实Mac系统相对Windows来说更加安全,主要原因是针对Mac系统的病毒和流氓软件并不多,而且Mac系统的安全机制也更加完善,不过为了更加安全的使用Mac,使用以下8款Mac 杀毒安全、安全防护和流氓防护工具软件,会让你的mac清理优化,轻装上阵,更加安全,使用更便捷。这8款Mac 杀毒安全和流氓防护等工具软件,个个好用,值得收藏! 「如果你觉得有更好的软件,可以回复留言,大家共勉。」Avas
  • 1
  • 2
  • 3
  • 4
  • 5