随笔分类 - iOS
摘要:NSURLProtocol /*! @class NSURLProtocol @abstract NSURLProtocol is an abstract class which provides the basic structure for performing protocol-specifi
阅读全文
摘要:NSOperation是一个抽象类,需要依赖子类去实现具体的功能 如果事务不知道队列,直接调用start函数,就会在主队列执行 NSBlockOperation有点类似于函数编程 NSOperation控制最大并发数: NSOperation处理依赖关系: 关于operationQueue的挂起,继
阅读全文
摘要:1. 之前栈栏函数在使用AFNetwork会出现问题。原因是AFN有一个自己的队列 ”com.almofire.cn.session“, 所以在使用的时候并不知道AFN底层有一个队列,就会出现栈栏函数失效没有达到之前顺序执行的预期。 libdispatch源码:https://opensource.
阅读全文
摘要:GCD 函数 队列: 队列和函数 这里崩溃的原因是死锁:(相互等待执行完成) 串行队列里面添加的顺序是:2 - block - 4 - 3 因为是串行队列,所以4 的执行需要等待block执行,block执行完成依赖于3,3又要等待4执行完毕,所以造成死锁。 队列: 队列的特征是FIFO,并发队列也
阅读全文
摘要:线程的定义: 线程是进程的基本执行单元,一个进程的所有任务都在线程中执行 进程要想执行任务,必须得有线程,进程至少要有一条线程 程序启动会默认开启一条线程,这条线程被称为主线程或UI线程 进程的定义 : 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用的且受保护的
阅读全文
摘要:方法->底层会编译成消息->消息查找会使用递归查找 元类是一种虚拟的类,系统实现的,用来存储类对象的 对象分为: 1. 实例对象:存在类里面, 2. 类对象:存在元类里面 实例方法: 递归查找父类 -> 最终会查找到NSObject 如果没有实现就会进入动态方法解析 /***************
阅读全文
摘要:Runloop 不仅仅是一个运行循环,而且是一个对像,对像里面提供很多东西。(do-while循环) 提供一个入口,让程序进入do...while循环,保证应用程序不被退出。 runloop的官方文档是在thread里面的一个小分支,runloop和线程是息息相关的。 runloop是一种消息机制的
阅读全文
摘要:c c++ 汇编一起写成的api,为OC提供运行时。 官方文档 与运行时相对应的是编译时:源代码翻译成机器可识别的语言(汇编),最后翻译成二进制代码。 代码运行起来时,运行时会把可执行文件装载到内存中。 运行时版本: Legacy and Modern Versions Objective-C 2.
阅读全文
摘要:用法: 1. 初始化并 - (FBKVOController *)kvoCtrl{ if (!_kvoCtrl) { _kvoCtrl = [FBKVOController controllerWithObserver:self]; } return _kvoCtrl; } 2. 添加观察者两种方式
阅读全文
摘要:下面来实现KVO自动销毁:(在合适的时候,自动移除观察者) @implementation NSObject (FXKVO) - (void)dealloc{ //指回父类 Class superClass = [self class];//KVOStudent object_setClass(se
阅读全文
摘要:系统dealloc中做了什么事情? 移除观察者之前打印: 移除观察者,isa指针指回原来的类,动态生成的子类不知道是否会消失?打印下: (防止isa的影响,在动态方法解析的时候,要判断class.isa 是否为 metal class,类的isa不一定指向metal,有可能指向kvo动态子类,所以是
阅读全文
摘要:load方法什么时候调用? method Swizzling 为什么要放在load方法里面? /*********************************************************************** * _objc_init * Bootstrap initi
阅读全文
摘要:1. 分类和类定义相同的方法,会不会覆盖类方法: #import "FXPerson.h" @implementation FXPerson - (void)walk{ NSLog(@"person walk"); } @end #import "FXPerson+something.h" @imp
阅读全文
摘要:KVC 为核心方法,闭源,没有源码,只能猜测。为了方便理解,自己根据官方文档的描述,实现了一个简单的KVC,所以是不安全的,只作为理解学习使用。(在导入第三方框架的时候,需要考虑是否有导入的必要性,权衡利弊) KVC官方文档 https://developer.apple.com/library/a
阅读全文
摘要:open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/
阅读全文
摘要:今天搞了半天的p.12开发证书,发现一些坑,分享一下. 一,打开xcode随便新建一个程序 二,设置你的Bundle identifier为一个可用的字符串,例如com.gongsiname.appname.test 三,选择你的Team, 此处需要一个APPID,如果你是免费用户,真机调试时只能选
阅读全文
摘要:两种可能: 1.证书没有信任,安装证书,此类问题很多博客都有提到 2.之前遇到这个问题,找不到原因:证书已装过,还是不能访问,更换端口,可能端口被占用
阅读全文
摘要:Add your Podfile to project line for Specify project path
阅读全文
摘要:一.创建桥接头文件: 1.首先需要创建一个空的.h文件,命名规则为:项目名-Bridging-Header; 2.在build settings 中找到 swift compiler Code Generation, 找到 Objective-c bridger Header ,填写上刚才创建的.h
阅读全文
浙公网安备 33010602011771号