10 2015 档案

OC_block_0x03
摘要:有自动变量,且有__block存储域类说明符:struct __Block_byref_val_0 { void *__isa; __Block_byref_val_0 *__forwarding; int __flags; int __size; int val;};struct __m... 阅读全文

posted @ 2015-10-24 11:13 FKunLam 阅读(146) 评论(0) 推荐(0)

OC_block_0x02
摘要:有自变量Blok,但是没有__block修饰符;struct __main_block_impl_0 { struct __block_impl impl; struct __main_block_desc_0* Desc; const char *fmt; int val; __main_bloc... 阅读全文

posted @ 2015-10-24 10:38 FKunLam 阅读(106) 评论(0) 推荐(0)

OC_block_0x01
摘要:block是包含自变量的匿名函数0x01.无参数blockint main (){ void (^blk)(void) = ^{printf("Block\n");} blk(); return 0;}clang -rewrite-objec oc的m文件struct __block_impl... 阅读全文

posted @ 2015-10-24 10:01 FKunLam 阅读(110) 评论(0) 推荐(0)

OC_自动引用计数器_0x08
摘要:ARC是“由编译器进行内存管理”的,但实际上只有编译器是无法完全胜任的,在此基础上还需要Objective-C运行时库的协助。也就是说,ARC由以下工具、库来实现。 1)clang(LLVM编译器)3.0以上; 2)objc4 Objective-C运行时库493.9以上;id __strong... 阅读全文

posted @ 2015-10-23 15:02 FKunLam 阅读(128) 评论(0) 推荐(0)

OC_自动引用计数器_0x07
摘要:属性声明的属性与所有权修饰符的对应关系assign __unsafe_unretainedcopy __strongretain __strongstrong __strongunsafe_unretained _... 阅读全文

posted @ 2015-10-23 14:23 FKunLam 阅读(118) 评论(0) 推荐(0)

OC_自动引用计数器_0x06
摘要:0x01.内存管理的思考方式:1)自己生成的对象,自己所持有;2)非自己生成的对象,自己也能持有;3)自己持有的对象不再需要时释放;4)非自己持有的对象无法释放;0x02.所有权修饰符1)__strong修饰符,是id类型和对象类型默认的所有权修饰符。也就是说,一下源代码中的id变量,实际上被附加喇... 阅读全文

posted @ 2015-10-23 14:13 FKunLam 阅读(190) 评论(0) 推荐(0)

OC_自动引用计数器_0x05
摘要:autorelease具体使用方法如下:1)生成并持有NSAutoreleasePool对象;2)调用已分配对象的autorelease实例方法;3)废弃NSAutoreleasePool对象。autorelease是怎样实现的呢?来插卡GNUstep的源代码。[obj autorelease];-... 阅读全文

posted @ 2015-10-23 11:31 FKunLam 阅读(157) 评论(0) 推荐(0)

OC_自动引用计数器_0x04
摘要:在NSObject类的alloc类方法上,执行所调用的方法和函数:+alloc+allocWithZoneclass_createInstancecallocretainCount/retain/release实例方法又是怎样实现的呢?下面列出来:-retainCount__CFDoExternRe... 阅读全文

posted @ 2015-10-23 11:04 FKunLam 阅读(144) 评论(0) 推荐(0)

OC_自动引用计数器_0x03
摘要:release方法的实现- (void)release{ if(NSDecrementExtraRefCountWasZero(self)) [self dealloc];}BOOLNSDecrementExtraRefCountWasZero(id anObject){ if(((str... 阅读全文

posted @ 2015-10-23 10:30 FKunLam 阅读(158) 评论(0) 推荐(0)

OC_自动引用计数器_0x02
摘要:0x01.alloc/retain/release/dealloc实现alloc:struct obj_layout { NSUInteger retained;};+ (id)alloc{ int size = sizeof(struct obj_layout) + 对象大小; struct... 阅读全文

posted @ 2015-10-23 10:21 FKunLam 阅读(152) 评论(0) 推荐(0)

OC_自动引用计数器_0x01
摘要:0x01.自己生成的对象,自己所持有:alloc,new,copy,mutableCopy0x02.非自己生成的对象,自己也能持有:类似NSArray *array =[NSArray array],[array retain] 阅读全文

posted @ 2015-10-23 09:59 FKunLam 阅读(129) 评论(0) 推荐(0)

初学iOS tweak_0_前期
摘要:必要的硬件准备:一个越狱的设备,最好是iPhone 越狱是必要的,因为只有越狱才能运行非AppStore上的软件。必要的软件准备:在Cydia里安装下面的软件 1.OpenSSH,OpenSSH是Linux下常用的服务,装上后设备可充当服务SSH服务端 2.GNU Debugger(gdb)调试工具... 阅读全文

posted @ 2015-10-22 15:39 FKunLam 阅读(188) 评论(0) 推荐(0)

初学iOS tweak_4_问题0x01
摘要:不能ssh登录时,可以删除对应的ip和rsa信息vi ~/.ssh/known_hosts删除对应ip的相关rsa信息 阅读全文

posted @ 2015-10-20 15:31 FKunLam 阅读(134) 评论(0) 推荐(0)

初学iOS tweak_3_dpkg
摘要:dpkg是一个专门用来制作deb(Debian package)的工具,我们用Theos开发出来的插件都将会以deb格式开发。0x01.前往http://www.macports.org/install.php下载对应OSX版本的pkg安装包;0x02.安装完成后,在Terminal中运行: su... 阅读全文

posted @ 2015-10-20 14:00 FKunLam 阅读(184) 评论(0) 推荐(0)

初学iOS tweak_2_MobileSubstrate
摘要:0x01.配置MobileSubstrate环境 在Terminal中使用以下命令配置开发时需要的MobileSubstrate环境: sudo $THEOS/bin/bootstrap.sh substrate0x02.遇到bug时,将iOS设备上的/Library/Frameworks/Cy... 阅读全文

posted @ 2015-10-20 13:12 FKunLam 阅读(369) 评论(0) 推荐(0)

初学iOS tweak_1_Theos
摘要:Theos是一个越狱开发工具包,由大神Dustin Howett(@DHowett)开发并分享到GitHub上。Theos与其他越狱开发工具相比,最大的特点就是简单,下载安装简单、Logos语法简单、编译发布简单,可以让使用者把精力都放在开发工作上去。0x01.配置环境变量 export TH... 阅读全文

posted @ 2015-10-20 13:06 FKunLam 阅读(336) 评论(0) 推荐(0)

iOS应用程序沙盒目录结构
摘要:获取主要目录路径的方式沙盒目录NSLog(@"%@",NSHomeDirectory());MyApp.appNSLog(@"%@",[[NSBundle mainBundle] bundlePath]);tmpNSLog(@"%@",NSTemporaryDirectory());Document... 阅读全文

posted @ 2015-10-10 16:37 FKunLam 阅读(146) 评论(0) 推荐(0)