2014-07-21 Xiaosong Gao
你的应用正在被其他对手反向工程、跟踪和操作!你的应用是否依旧裸奔豪不防御? 郑重声明一下,懂得如何攻击才会懂得如何防御,一切都是为了之后的防御作准备。废话少说,进入正题。 今天总结一下为Hack而做的准备工作。 一、常用的命令和工具 继续阅读 »
2014-07-17 Xiaosong Gao
1、字符串常量 NSString * s = @"test"; NSLog(@"s:%d", [s retainCount]); // -1或2147483647(即UINT_MAX,Maximum value an 'unsigned int') 继续阅读 »
2014-04-30 Xiaosong Gao
iOS
一、技术概览 1、Core Data功能初窥 对于处理诸如对象生命周期管理、对象图管理等日常任务,Core Data框架提供了广泛且自动化的解决方案。它有以下特性。 对象图-Object Graph的解释:在面向对象编程中,对象之间有各种关系,例如对象直接引用另外的对象,或是通过引用链间接的引用其他对象,这些关系组成了网状的结构。我们把这些对象(和它们之间的联系)成为对象图。对象图可大可小,有繁有简。只包含单个字符串对象的数组就是一个简单的代表;而包含了application对象,引用windows、menus和相关视图对象、其他对象这样的结构就是复杂对象图的例子,这是在说mainwindow.xib。 继续阅读 »
2014-04-27 Xiaosong Gao
Objective-C是一门简单的语言,95%是C语言。只是在语言层面上加了些关键字和语法。真正让Objective-C如此强大的是它的运行时。它很小但却很强大。它的核心是消息分发。 runtime是开源的。可以去下载:http://opensource.apple.com/tarballs/objc4/objc4-437.1.tar.gz。 runtime是由C语言实现的。 runtime的两个版本。 继续阅读 »
2014-04-26 Xiaosong Gao
我们可以在Objective-C运行时将一个类中的一个方法,动态的替换为该类中的另一个方法。并且在替换后的方法中,依然可以调用以前的方法。 ``` import void MethodSwizzle(Class aClass, SEL orig_sel, SEL alt_sel) { Method orig_method = nil, alt_method = nil; // First, look for the methods orig_method = class_getInstanceMethod(aClass, orig_sel); alt_method = class_getInstanceMet 继续阅读 »
2014-04-25 Xiaosong Gao
说明 类别名可以随便取。 类别是一个类,它是添加了新功能的现有类。 使用类别就是为了能够为现有类添加新的方法,不用继承该现有类,就可使用现有类的对象调用添加的方法了。 类别可以使类的实现分散在多个文件中。 类别中不能有变量,类别中没有放变量的位置。 如果类中的方法和类别中的方法名称相同,这将造成冲突,类别的方法将完全取代类的方法。 同一个类的不同类别声明了相同的方法,这将导致不稳定,哪个方法会被调用是不确定的。 不建议在类别中覆盖类中的方法,因为在类别中的方法不能调用superClass的方法(因为没有元数据支持)。 类别方法不能覆盖于同一个类的其它类别中的方法。因为无法预知他们的加载优先顺序,就可能在编译时出错。 对类库的类别方 继续阅读 »
2014-04-16 Xiaosong Gao
Mac
很多使用Mac OS X Mavericks(10.9)的人都反映说,系统开关机的速度变慢了很多,在Macbook Pro和Macbook Air上都是如此。 最好的解决问题的方案是清除kext缓存。kext是Mac OS X的一个内核扩展,清理它可以提升系统启动和关闭的速度。 继续阅读 »
2014-04-13 Xiaosong Gao
Mac
相信大家对快捷键的使用并不陌生,不仅使工作更加的方便快捷还大大提高了工作效率。这里有一组快捷键组合可以快速转换"简体"、"繁体"字体。 注:对系统原生应用有效。如文本编辑,Pages等。组合键只对Mac OS X 10.8以上系统有效。 继续阅读 »
2014-04-08 Xiaosong Gao
iOS
在使用iOS 7.1 SDK开发的时候,有一个ShareViewController,在viewDidLoad中需要添加一个UITextView控件,并且已经设置好了一段比较长的文本。代码如下: - (void)viewDidLoad { CGRect rcShareTextView = CGRectMake(0, 0, 290, 150); self.shareTextView = [self defaultShareTextView]; _shareTextView.frame = rcShareTextView; [self.view addSubview:_shareTextView]; } 继续阅读 »
2014-04-07 Xiaosong Gao
iOS
一、按比例缩放 首先说按比例缩放,这是在Interface Builder中无法设置的内容。而在代码中,使用NSLayoutConstraint类型的初始化函数中的multiplier参数就可以非常简单的设置按比例缩放。同时也可以设置不同NSLayoutAttribute参数来达到意想不到的效果,比如"A的Width等于B的Height的2倍"这样的效果。 继续阅读 »