自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (18)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS编译过程之LLVM

传统编译器:1.编译器前端(Frontend):它解析源代码,进行词法分析,语法分析,语义分析,检查源码是否错误,然后构建抽象语法树(Abstract Syntax Tree,AST),LLVM的前端还会生成中间代码2.优化器(Optimizer):优化器负责进行各种优化。改善代码的运行时间,列如消除冗余计算等。3.后端(Backend)/代码生成器(CodeGenerator):将代码映射到目标指令集。生成机器语言,并且进行机器相关的代码优化。...

2022-08-11 15:50:47 86

转载 iOS框架-之入门篇

在日常开发中,经常讨论什么样的框架能。感觉什么都知道,但做起来又好像什么都不知道。各种大佬又有各种的流派,框架这种东西还是得自己理解并且贯通。就如同武功秘籍,必须打通"任通二脉"才能突破到更高一层一样。各位程序猿,也是以这个目标进行自我修行提高。(PS:本文只针对自己的理解加以记录)顾名思义,MVC包括三个模块:(模型层)、(视图层)、(控制层)。与用户的交互顺序是:用户通过视图层发送请求(例如查询账户信息request),视图层的请求发送到控制层,控制层进行中转后,通过模型层与数据库交互查询。模型层的查询

2022-07-28 20:38:38 94

原创 block底层探索

1.block的本质block的本质是⼀个类型的结构体。copy和dispose函数是⽤来对block内部的对象进⾏内存管理的,block拷⻉到堆上会调⽤copy函数,在block从堆上释放的时候会调⽤dispose函数。2.block的底层原理⽤__block修饰的变量在编译过后会变成__Block_byref__XXX类型的结构体,在结构体内部有⼀个__forwarding的结构体指针,指向结构体本身。__block修饰对象的__forwarding指针指向堆上的拷⻉之后的对象。...

2022-07-28 20:36:16 231

原创 iOS界面卡顿原理及优化

在日常开发中,我们最多遇到的就是UI绘制,内容展示等需求的开发,APP的UI展示是否流畅,也是用户最直接的感受。今天就针对UI界面卡顿原理进行分析,如何优化进行讨论。

2022-07-13 22:27:01 849

原创 iOS-线程锁

在程序开发过程中,经常使用到线程,多线程操作数据时。难免发生一些不可控的情况,造成数据不安全。这个时候我们就用了锁,常用的锁有哪些?有os_unfair_lock、NSLock、NSCondition、NSRecursiveLock等。...

2022-06-15 17:40:24 328 1

转载 iOS类的底层探索(下)

前面我们已经学习了对象相关内容, 如元类,根元类,以及superclass的结构与关系等;初步分析了类的结构superclass,cache,class_data_bits_t,class_data_bits_t结构体中提供了data()方法,用于获取class_rw_t,class_rw_t是在类初始化过程中已经被创建了,并且class_rw_t的相关数据来自MachO文件中ro数据!简单总结:对象是类的实例,类是元类的实例,方法都存储在各自的类中。...

2022-06-15 17:29:52 71

转载 iOS类的底层探索(上)

前面我们已经学习了对象相关内容,如alloc的流程,对象的内存分配,以及对象ISA的初始化等;明确了OC层NSObject,与c\c++层中objc_object的对等关系;Class的定义为objc_class *类型。接下来,深入探索类的结构。一. isa指针分析在对象的初始化过程中,学习了对象isa的初始化,并且isa中的shiftcls指向了对象所对应的类。通过以下案例我们可以再次验证这一点,即对象内存结构的前八个字节是对象的isa,并且指向了p对象的类LGPeron。见下图:.

2022-05-20 10:08:45 48

原创 ios对象的底层探索(下)

我们在上一篇文章中已经初步了解了,alloc是如何分配内存等,结构体按最内存对齐,oc类是16字节对齐等内容。 影响对象内存的因素 对象⾥⾯存储了⼀个isa指针 + 成员变量的值,isa指针是固定的,占8个字节,所以影响对象内存的只有成员变量(属性会⾃动⽣成带下划线的成员变量)我们验证看到,对象P并未赋值。但是p的内存占用了48字节(8+8+4+8+2+1=31 按8对齐40+isa8)。 对象的内存分布 在对象的内部是以8字节进⾏对⻬的。 苹果会⾃动重成员变量的顺序

2022-05-20 09:41:21 35

原创 ios对象的底层探索(上)

常用指令 1. po: 为 print object 的缩写,显示对象的文本描述2. bt: 打印函数的堆栈 3. register read 读取寄存器4. x/nuf n表示要显示的内存单元的个数 u表示一个地址单元的长度: 取值范围: b 单字节 h 表示双字节 w 表示四字节 g 表示八字节 f表示显示方式: 取值范围: ..

2022-04-17 01:14:53 37

原创 计算机学习笔录

1.二进制算法:35 = 100011 (2)具体步骤:35 / 2 =17======= 余117 / 2 = 8======= 余108 / 2 = 4======= 余004 / 2 = 1======= 余002 / 2 = 1======= 余0...

2022-03-29 14:28:09 238

原创 Hook初探索

分析MachO获取函数地址⾸先我们要⽤到⼀款软件。MachOView利⽤它来分析我们Demo的主程序。接下来如何定位到我们的sum函数地址呢? 通过LLDB调试获取Sum函数的⽂件偏移地址。1.⾸先在sum函数上下⼀个断点 2.然后通过汇编显示确定函数地址,在Xcode⾃带的Debug设置中设置⼀下搞定 Debug --> Debug Workflow --> Always Show Disassembly(⼀直显示汇编)3.接下来通过LLDB指令找出主程序的.

2022-01-24 17:44:29 199

原创 Mach-0符号表

ABI Mach-OMach-O(Mach Object) 是MacOS、iOS,iPadOS存储程序和库的文件格式。对应系统通过应用二进制接口(application binary interface,缩写ABI)来运行改格式的文件。Mach-O格式用来替代BSD系统的a.out格式。Mach-O文件格式保存了在编译过程和链接过程中产生机器代码和数据。从而为静态链接和动态链接的代码提供了单一文件格式。段之前始终是4096字节或者4KB的倍数,其中4096字节是最小大小。现在短是16

2022-01-20 16:27:25 2382

原创 寄存器常见指令

mov: 将某一寄存器的值复制到另一寄存器(只能用于寄存器与寄存器或者寄存器 与常量之间传值,不能用于内存地址),如:mov x1, x0 将寄存器 x0 的值复制到寄存器 x1 中add: 将某一寄存器的值和另一寄存器的值 相加 并将结果保存在另一寄存器中, 如:sub: 将某一寄存器的值和另一寄存器的值 相减 并将结果保存在另一寄存器中:and: 将某一寄存器的值和另一寄存器的值 按位与 并将结果保存到另一寄存器中, 如:orr: 将某一寄存器的值和另一

2022-01-19 17:12:18 1464

原创 记录podspec创建私有pod库流程,ios组件化管理。

最初是想整个组件化管理的案例,借鉴了一些文章:作者:SnaiLi地址:https://www.jianshu.com/p/ea09fa02e871 和作者:上海_光强 地址:https://www.jianshu.com/p/59c2d2c4b737 (不能白漂别人的成果)1、创建一个git仓库用来做内部私有库的Spec Repo,命名为Pods(自己喜欢怎么命名都可以),如下图:image.pngpods.git 用来管理控制 自己的组件.podspec 版本的注意:一定...

2021-02-23 16:52:55 504 1

转载 [iOS] iOS开发的22个奇葩技巧

转自:http://bbs.itcast.cn/thread-51807-1-1.html导读:TableView不显示没内容的Cell怎么办?键盘事件写得好烦躁,都想摔键盘了怎么办?App老不流畅哪出问题了?CoreData语法又臭又长怎么办?拉伸图片怎么才能不变形?让我们一起欢乐地学习一下iOS开发的各种小技巧吧。1. TableView不显示没内容的Cell怎么办?类似于

2015-12-08 14:43:21 586

转载 iOS的横屏(Landscape)与竖屏(Portrait)InterfaceOrientation

最近做一个页面,最初并没有太多考虑orientation的情况,当其嵌入到一个在iPad上使用横屏(Landscape)的应用中,就会只显示在屏幕的左面,而且貌似还没显示全,这个……很丑!发自内心地觉得这么做对不起苹果的设计理念!对不起乔老爷子。。。改!说到该就要了解苹果开发中对iOS应用的横屏(Landscape)和竖屏(Portrait)的支持情况。0. 应用级别的配置大家(特指有

2015-01-13 16:21:34 868

原创 C# 数组之回溯法

很多数排列组合问题都可以用回溯法来解决,回溯相比上面方法的优点就是减少可行解搜索的范围,因为回溯一旦发现当前解不满足条件就会停止搜索,回溯并进入下一个分支进行搜索,比上面的方法快很多,这里使用的是回溯法中的子集树模型。对于数组中任意一个元素,先将其放入结果集中,如果当前和不超出给定和,那就继续考察下一个元素,如果超出给定和,则舍弃当前元素。如此往复,直到找到所有可行解。首先定义一个标志位数

2012-03-15 16:07:12 1132

原创 c#,.net 下载文件 设置断点

///         /// c#,.net 下载文件          ///         /// 下载文件地址        /// 下载后的存放地址        /// 用于显示的进度条        ///         public void DownloadFile(string URL, string filename, System.Windo

2012-03-07 17:31:21 1612 1

转载 ASP.NET MVC:自定义 Route

无标题文档先给出本文中测试用的 controller:public class PersonsController : Controller{    public ActionResult Query(string name)    {        return View();    }}  ASP.NET 中 Url 大小写  不严格来讲,ASP

2012-02-23 17:50:55 1098

转载 ASP.NET MVC3的伪静态实现

最近使用asp.net MVC3开发B2C电子商务系统,为了SEO的优化工作,需要通过路由实现伪静态URL,后续再根据需要生成真正的静态页面,不直接走路由访问具体的页面。现在开始研究第一步,如何定义自己的路由规则,达到伪静态的功能需求。基本实现原理如下图: 首先,关于命名空间。路由的功能是为了让所有Asp.net网站开发都可以使用,所以dll并没有在MVC中,而是在System.W

2012-02-21 17:44:24 435

转载 C# Base64加密

///         /// Base64加密        ///         /// 加密采用的编码方式        /// 待加密的明文        ///         public static string EncodeBase64(Encoding encode, string source)        {            str

2012-02-14 16:44:58 551

原创 模仿php number_format函数的c# 价格转换函数

///         /// 价格转换函数        ///         /// 价格字符        /// 保留几位        /// 小数点符号        /// 千位符号        ///         public static string numberFormat(string fot, int rud, char xNo,

2012-02-10 17:44:53 576

转载 C#多线程实例

Thread th=new Thread(new ThreadStart(方法));th.Name="aa" 为线程命名th.Priority=ThreadPriority.Highest 最高 //运行的优先级

2011-09-24 11:40:19 475

原创 menu

http://www.open-open.com/ajax/Menu.htm

2011-06-30 13:57:00 258

原创 垓下歌

 力拔山兮气盖世。时不利兮骓不逝。骓不逝兮可奈何!虞兮虞兮奈若何!  (摘 读者 挂科于重修)元旦至兮要考试,事不利兮考不过。老不过兮要挂科,老章老章奈若何! 阁下不是老项,鄙人不是小虞。挂科远非垓下,重修好过别姬。

2009-11-22 23:26:00 356

适用VM的mac10.15.4映象cdr.txt

适用于虚拟机VMware的mac os系统映象 cdr镜像文件,虚拟机可直接通过选择系统映象来创建mac系统,当前版本为10.15.4。

2021-02-23

mac10.15.4映象cdr下载地址.txt

mac10.15.4映象cdr下载地址.txt

2021-02-23

WPF学习实例

学习实例 内容包涵 样式 路由事件 绘图 动画 Binding的使用

2012-05-17

C# 写的小小下载器 文件断点—续传

通过文件断点,继续下载文件。供有兴趣的同学下载学习

2012-03-10

C# 写的小小下载器 文件断点 续传

通过文件断点,继续下载文件。供有兴趣的同学下载学习

2012-03-10

C# 写的小小下载器

已经测试OK, 有兴趣的同学, 可以下载学习。

2012-03-08

winfrom用户控件小样式

winfrom用户控件小样式 下来看看玩玩,也不错的

2011-10-12

wamp5_1.7.4

wamp+php+Mysql+Apache

2011-07-05

mysql-connector-net-5.2.7.zip

mysql发布的NET支持驱动。 已经试过,各种编码正常使用。

2011-05-26

AnkhSvn-2.1.10019.14 VS插件

团队开发的好帮手,最新的AnkhSvn-2.1.10019.14。分享

2011-05-20

PHP AJAX XJAX包

xajax_0.5_rc1_full 最新 0.5XAJAX 下来学习 分享.

2011-04-22

MYSQL连接数据库的DLL,MySQLDriverCS

MYSQL连接数据库的DLL,MySQLDriverCS。就测试引入OK。

2011-04-21

PHP phpMailer 发送邮件好用类文件

额 做PHP发送邮件时。 发现需要运用class.phpmailer.php才能发送。这边跟大家共享.

2011-04-19

SVN安装步骤TXT

SVN安装步骤,里面一些SVN的基本步骤,重点服务的创建的方法

2011-04-19

SVN_客户端1.6.7.18415安装包

TortoiseSVN-1.6.7.18415-win32-svn-1.6.9 由于上传只能传20MB这边只好 跟中文包分开了

2011-04-19

SVN-服务器环境安装包

SVN服务器环境安装包,1.6.0版本的。 有了挺正常的

2011-04-19

SVN中文包—1.6.7.18415-win32

LanguagePack_1.6.7.18415-win32-zh_CN

2011-04-19

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除