摘要: HTTPS(HyperText Transfer Protocol over Secure Socket Layer),可以看成HTTP+SSL/TLS。其中TLS(Transport Layer Security,传输层安全)是SSL的改进。 1、HTTP的问题 1)通信内容明文,可能被窃听。 2 阅读全文
posted @ 2018-08-07 21:49 happyyoung 阅读(188) 评论(0) 推荐(0) 编辑
摘要: Objective-C autorelease https://opensource.apple.com/source/objc4/objc4-532/runtime/NSObject.mm.auto.html @autoreleasepool 双向链表 阅读全文
posted @ 2018-07-13 20:29 happyyoung 阅读(236) 评论(0) 推荐(0) 编辑
摘要: KVO(Key Value Observing,键值观察),是Objective-C观察者模式的实现。当被观察对象的某个属性发生变化时,观察对象就会收到通知。 实现原理: 1)在运行期,为被观察对象的类xxx动态创建一个子类,名为NSKVONotifying_xxx 2)在子类NSKVONotify 阅读全文
posted @ 2018-07-05 22:06 happyyoung 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 多线程在Objective-C项目中占有很大的比重,它能提高程序的运行效率,但也因此带来线程安全问题。而锁就是解决线程安全问题最常用的武器。 锁有很多种。 1、NSLock,非递归锁 同个线程,连续lock多次会死锁 2、NSRecursiveLock,递归锁 同个线程,连续lock多次不会死锁 3 阅读全文
posted @ 2018-07-04 17:25 happyyoung 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1、weak是弱引用,所引用的对象计数不会加1。 2、weak变量在其引用的对象被销毁之后,会被置为nil。 3、weak通常用于block, delegate, NSTimer,以解决循环引用带来的内存泄漏问题。 NSObject *obj = [[NSObject alloc] init]; / 阅读全文
posted @ 2018-06-25 22:32 happyyoung 阅读(1042) 评论(0) 推荐(0) 编辑
摘要: MVC 阅读全文
posted @ 2018-06-25 20:51 happyyoung 阅读(120) 评论(0) 推荐(0) 编辑
摘要: @synchronized是线程同步锁,易用、可读性高。 @synchronized(self) { 临界区 } 利用如下命令将其重写 clang -rewrite-objc file 得到C++实现 { id _sync_obj = (id)self; objc_sync_enter(_sync_ 阅读全文
posted @ 2018-06-17 22:06 happyyoung 阅读(1003) 评论(1) 推荐(0) 编辑
摘要: main函数是我们所熟知的程序入口,Java、Python、C++等,虽语法各异,但皆是如此。然而,程序真正的起点并非main函数,在此之前,就已经干了很多事情。 1、在main函数打个断点,从调用栈可以看到,是动态库dyld(dylib即dynamic library)里的start方法调了mai 阅读全文
posted @ 2018-06-02 18:33 happyyoung 阅读(160) 评论(0) 推荐(0) 编辑
摘要: initialize和load 阅读全文
posted @ 2018-06-02 16:28 happyyoung 阅读(87) 评论(0) 推荐(0) 编辑
摘要: NSTimer,即计时器,用于定时执行一些任务,一次或者多次。 系统Foundation框架提供的最常用方法如下,创建一个NSTimer,并将它放到当前runloop的default mode中。 1、怎么保证在未来某个时间点,要执行任务时,target还有效呢?target完全有可能被释放了呀。鉴 阅读全文
posted @ 2018-05-08 20:46 happyyoung 阅读(341) 评论(0) 推荐(0) 编辑