• 2024-07-23iOS开发基础136-防暴力点击
    要在Objective-C中创建一个高度可复用的工具类,以防止按钮的暴力点击,并且使用切面编程(AOP)的方式,我们可以考虑使用Aspects这个库来实现方法的拦截。以下是具体的实现步骤:第一步:引入Aspects库首先,需要将Aspects集成到项目中。Aspects是一个轻量级的AOP框架,允许你在运行时拦截类的实
  • 2024-07-17iOS开发基础123-自动释放池
    自动释放池(AutoreleasePool)是Objective-C中用于管理内存的一个重要机制,它帮助开发者简化内存管理的工作。自动释放池的核心概念是将对象放入池中,在某个时刻由系统统一释放这些对象。这种机制在iOS和macOS的应用开发中广泛使用,尤其是在事件循环和线程运行时。为了深入理解其底层
  • 2024-06-04防止按钮重复点击 Swift
     typealiasActionBlock=((UIButton)->Void)extensionUIButton{privatestructAssociatedKeys{staticvarActionBlock="ActionBlock"staticvarActionDelay="ActionDelay"}///运行时关联
  • 2024-06-03分享下最近基于Avalonia UI和MAUI写跨平台时间管理工具的体验
    起因几个月前,我在寻找一款时间管理软件,类似番茄时钟的工具,但是希望可以自定义时间。需要自定义的场景做雅思阅读,3篇文件需要严格控制时间分配,需要一个灵活的计时器定期提醒,每30分钟需要喝水或者上个厕所或者摸一下鱼...总结起来就是:专注一段时间,比如30分钟,然后休息10分钟,
  • 2024-03-27iOS - Runtime-消息机制-objc_msgSend()
    iOS-Runtime-消息机制-objc_msgSend()前言本章主要介绍消息机制-objc_msgSend的执行流程,分为消息发送、动态方法解析、消息转发三个阶段,每个阶段可以做什么。还介绍了super的本质是什么,如何调用的1.objc_msgSend执行流程OC中的方法调用,其实都是转换为objc_msgSend函
  • 2024-01-28Objective-C杂谈【1】
    ObjC(Objective-C)进入人们的视野,主要源自MacOSX的Cocoa。人们即使是开发着更多关注的也是Cocoa靓丽的外表,对支撑起Cocoa的ObjC确一直缺乏深入了解。ObjC给人深刻印象的无异于它与传统基于“.”的面向对象语言语法的完全不同的调用或者消息传递语法。例:[objectdoSomethingWithPa
  • 2023-11-23iOS APP包分析工具
    介绍分享一款用于分析iOSipa包的脚本工具,使用此工具可以自动扫描发现可修复的包体积问题,同时可以生成包体积数据用于查看。这块工具我们团队内部已经使用很长一段时间,希望可以帮助到更多的开发同学更加效率的优化包体积问题。工具下载地址背景APPAnalyze工具最早诞生主要是为
  • 2023-08-29objc懒加载的坑
    我们定义一个objc的属性时,有时候会用懒加载,比如-(UITableView*)tableView{if(!_tableView){_tableView=[UITableViewnew];_tableView.delegate=self;}return_tableView}一般情况下是没什么问题,但是如果在dealloc方法里调用self
  • 2023-07-08mac Typora最新版逆向破解
    0x00Typora是一款强大的markdown编辑器,它可以让你轻松地写出美观的文档。但是其一直是不开源的,而且现在也已经开始收费了。所以本着学习探索的精神去逆向看看~0x01众所周知Typora是基于electron+reacta开发的,所以先看看js代码~然后在顺着这个O继续康康~关键就是这个e.hasActi
  • 2023-05-06iOS开发系列--Swift进阶
    概述上一篇文章《iOS开发系列--Swift语言》中对Swift的语法特点以及它和C、ObjC等其他语言的用法区别进行了介绍。当然,这只是Swift的入门基础,但是仅仅了解这些对于使用Swift进行iOS开发还是不够的。在这篇文章中将继续介绍一些Swift开发中一些不常关注但是又必备的知识点,以便对Sw
  • 2023-04-21iOS:AutoReleasePool
    具体参考文章AutoRelease是依靠AutoreleasePoolPage来进行push和pop进行工作的AutoreleasePoolPage为双向链表,parent字段指向上一层,child指向下一层每个AutoreleasePoolPage的大小为4096字节每个AutoreleasePoolPage最多可以存放505个对象。首个page可以
  • 2023-03-29iOS 解决按钮防重复点击的问题
    日常使用中经常会出现按钮重复点击导致的数据重复提交问题,从而导致数据出错,常用的解决办法有1、在发起请求的时候来一个全屏的loading这样在loading期间按钮就无法被点击,
  • 2023-02-25iOS的文件校验码生成 - ObjC编写
    一般我们比较文件的完整性,就是对文件进行哈希计算,通常就是MD5或者SHA256或者SHA1计算,如果生成的结果字符串是一样的,则表明文件没有被篡改比如我们在网络上下载的安装包,下载
  • 2023-02-07Swift与Objc(传统语言)的异同
    本文旨在简明扼要的总结swift语言中与objc传统语言的差异点。帮助自己和大家学习。一,swift基础语法1.swift的表达式可以不指定数据类型,因为可以自动推荐数据类型。例:vara
  • 2023-02-06iOS runtime 实战之关联对象(一)
    一、什么是关联对象1、关联对象的概念:associatedObject又称关联对象,把一个对象关联到另外一个对象身上,使两者能够产生联系,我们可以通过associatedObject来给分类扩展属性
  • 2023-01-10iOS OC 中的对象、 类 和 元类
    一、对象的结构体typedefstructobjc_object{Classisa;}*id;isa指针:这个指针指向他所属的类。这个对象的isa指针指向他的类。二、类的结构体typedefst
  • 2022-12-12swift 和objc 混编ipa包过大的问题及处理方法
     见上图包过大的原因是:swift由于开始语言的不稳定性,在打包是加入了  这些动态库,再低版本的ios中为了兼容,需要加入这些动态库。如果修改app的最低版本到12.2以上,则
  • 2022-11-18iOS面试题总结
    iOS已经到了小公司用不起,大公司不招的地步了。当然,也没有实习生要来学这个。整个移动端都太难了,今年大家都太难了。面试了一些公司,就自我总结一下吧。有空也能背一下。基
  • 2022-11-10SwiftUI 与ObjC混编和消息传参
    SwiftUI同OC混编OC打开SwiftUI页面1、创建OC主工程2、添加Swift文件,此时会弹窗提醒自动创建一个桥接文件,点击确定,创建文件3、在SwiftUI文件中创建被oc调用的控制器和
  • 2022-10-01带你领略下iOS中OC的“alloc”源代码,让你在工作中不在迷惑
    前言前面我们使用官方开源的objc源码进行了编译调试objc4-818.2源码编译调试笔记前言为什么会想要调试源码?苹果开源了部分源码,但相似内容太多,基本找不到代码见的
  • 2022-09-19扩展加属性 swift
    在Swift中,class依然可以使用关联对象默认情况,extension不可以增加存储属性借助关联对象,可以实现类似extension为class增加存储属性的效果classPerson{}extensionPers
  • 2022-09-05【iOS逆向】某营业厅算法分析
    阅读此文档的过程中遇到任何问题,请关注公众号【移动端Android和iOS开发技术分享】或加QQ群【812546729】1.目标使用fridastalker分析某营业厅的签名算法。2.操作环境
  • 2022-08-28iOS的Runtime知识点繁杂难啃,真的理解它的思想,你就豁然开朗了
    一、Runtime1、概念:概念:Runtime是Objective-c语言动态的核心,即运行时。在面向对象的基础上增加了动态运行,达到很多在编译时确定方法推迟到了运行时,从而达到动态修改、确