自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 podspec 简单用法

Pod::Spec.new do |s|  s.name         = 'Box  s.version     = "1.0.0"  s.license     = { :type => 'xxx.com', }  s.homepage    = 'homepage'  s.authors     = { 'xxx' => 'author na

2017-07-30 15:30:16 235

转载 被误解的MVC和被神化的MVVM

被误解的 MVCMVC 的历史MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(对,就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发明了这种软件

2017-07-14 11:05:14 291

转载 xcode反汇编调试iOS模拟器程序(四)自动断点应用之NSNotificationCenter

知道怎么查看后,先看看有什么实际应用,拿NSNotificationCenter来做实践吧。首先在某个容易进入的地方加断点,并停在那,例如main函数。在gdb或lldb输入命令,手工添加断点。如下图:输入的命令如下:[plain] view plain copyb -[NSNotificationCenter addObserver:s

2017-07-06 21:22:46 255

转载 xcode反汇编调试iOS模拟器程序(三)查看Objective-C函数与参数

在Objective-C函数的入口处(第一行)加断点,可用esp指针来探查参数。以esp为基址,往后的偏移分别是:0:函数执行完毕后的返回地址(不是返回值的地址哦)4:对象实例的指针,即self指针8:selector,实际是一个char数组型的字符串,即char*12:(如果有)第一个参数…(前一个参数的基址+前一个参数所占的字节数):(如果有)第n个参数由此

2017-07-06 21:22:04 578

转载 xcode反汇编调试iOS模拟器程序(二)看懂反汇编

这里当然不会从零开始讲汇编代码了,零基础的话可以看看 王爽 写的书《汇编语言》,请自己找度娘或谷哥要了。其实只为了iOS调试的话并不需要学多少,懂几个命令和明白寄存器的作用就行。建议遇到不懂的时候再搜索看看。这一节主要讲讲书上没有的东西。在xcode中看到的汇编语法不是熟悉的intel格式,而是叫AT&T汇编。基本上只要懂intel,at&t会很快上手。两者的区别请参考这篇文章:

2017-07-06 21:13:45 291

转载 xcode反汇编调试iOS模拟器程序(一)查看反汇编

iOS模拟器程序的实质就是Mac OS X程序,只不过它需要以模拟器为载体来运行显示。故它的反汇编代码指令都是x86 CPU的,不是真机上的arm指令。研究模拟器程序的反汇编有两个目的,或叫做好处:一是为了研究深入到ios系统的类库,你可以较容易地发现私有API,以及看到系统的实现。二是,很直接地,模拟器调试比真机快。而且,相信大多数人更懂x86指令,各类高校教材的汇编教程都不是a

2017-07-06 20:52:11 494

转载 IMP到底是什么?

IMP到底是什么?IMP的定义从objc.h头文件中可以直接找到[1]:typedef void (*IMP)(void /* id, SEL, ... */ ); 也就是typedef void (*IMP)(void); 也就是参数为空, 返回值为空的函数指针.IMP能直接调用么?定义一个类:@interface TestClass :

2017-07-06 17:01:51 6043

转载 selector到底是什么

selector到底是什么?看objc的源码[1], 知道真相的我眼泪掉下来:static SEL sel_alloc(const char *name, bool copy){ selLock.assertWriting(); return (SEL)(copy ? strdup(name) : name); }const char *sel_getNa

2017-07-06 17:01:23 1032

空空如也

空空如也

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

TA关注的人

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