数组索引键相当于临时性字段名。
类型的延伸、扩展、继承获取到更大的容器器皿结构概念非较小容器器皿的字段内嵌。嵌入式结构的最外层将通过次级字段名间接持有众多复杂的数据信息。
RunLoop:运行回路(回环)。
NSRunLoop运行回路的机制:官方文档API
OSX电脑操作系统/iOS移动端操作系统(操作系统:支持读写的系统型交互环境/某种语言的可执行文件包(环境SDK解析))。系统型交互环境的SDK内容包里面提供了2种对象类:NSRunLoop、CFRunLoopRef。对象类CFRunLoopRef核心基础运行回路引用类来源于CoreFoundation核心基础 框架内,CFRunLoopRef类提供有纯C语法函数事件API,所有这些API函数事件统统采用纯C语法指令编码都是线程安全(纯C语法指令编码线程安全性较高)。基于CFRunLoopRef核心基础运行回路引用类作进一步的封装,封装后得到NSRunLoop类公开提供新型的函数事件API(底层指令呈现出OC语法面向对象风格),所以NSRunLoop类下的函数事件API安全性较低。
备注:同等条件下封装的次数越多封装的层级越多,安全性逐步降低(安全性越低)。
函数/方法通过花括号"{}"组构建 实际执行实例域。
线(性流)程:内存消耗线。
NSRunLoop类型 与 活跃线程 的关系:
- A端节点 + 逻辑线+ B端节点//双节点逻辑线
NSRunLoop类型本身的花括号"{}"组执行实例域(相对于应用层工程师而言属于应用层工程师工作中不关注的底层部分)内主要调用dowhile()格式的循环指令,任意(RunLoop类型下的实例化对象)runLoop实例对象都各自管理着某个单独线程(runLoop实例对象和对应的某个单独线程互相绑定,彼此之间可视为一一对应的匹配关系(逻辑控制型实例)),匹配关系(控制型逻辑实例)通过hash一步访问的方式将匹配关系值保存在一个全局性的Dictionary词典容器皿里边(通过默认hash键值一步访问结果找到有效匹配关系值即存在runLoop实例对象和对应线程互相绑定/若没有找到有效的匹配关系值即因为某种原因导致匹配关系这种双节点逻辑线不存在)。(底层SDK增量包中内嵌有构建RunLoop实例的指令(存在触发时机的概念))正常情况下,线程刚开辟时没有相对应的runLoop实例化对象(需要应用层工程师主动的手动获取相对应的runLoop实例化对象)。应用层工程师主动触发能够获取相对应的runLoop实例化对象指令获取相对应的runLoop实例化对象产生,当该线程结束时相对应的runLoop实例化对象同时销毁。对于任何内存消耗线(性流)程而言,只能在该线程的上下文环境内部获取该线程相对应的runLoop实例化对象。主线程的上下文环境内存在默认的runLoop实例化对象(主线程由配置环境默认触发能够获取相对应的runLoop实例化对象指令默认获取相对应的runLoop实例化对象产生)。 - 线程Thread类型包含某个字段名X(X指定结构CFRunLoop),CFRunLoop类型执行域内包含更次级字段名mode(mode指定结构CFRunLoopMode),mode(CFRunLoopMode)包含更加次级的字段名YZW(Y指定结构CFRunLoopSource,Z指定结构CFRunLoopTimer,W指定结构CFRunLoopObserver)。
- runLoop实例化对象只能在一种回环mode模式下运行活跃(如需要更换所处的回环mode模式则当前的runLoop实例化对象需要停下运行动作(暂停动作后进行从旧模式至新模式的切换))进行旧新模式的切换,切换完成后在新的回环mode模式下进行重启操作。利用暂停切换机制,ScrollView滚动图器皿进入滚动模式滚动过程中回环mode模式会切换至UITrackingRunLoopMode追踪模式来保证ScrollView滚动图器皿的流畅滑动(通过追踪模式避免NSDefaultRunLoopMode默认模式中待处理事件的影响)。
NSDefaultRunLoopMode:默认模式(空闲状态)。
UITrackingRunLoopMode:追踪模式(ScrollView滚动图器皿滑动时UIInitializationRunLoopMode模式初始化启动)。
NSRunLoopCommonModes:通用模式(scrollView滚动图器皿的滑动影响到Timer定时器计时。解决方案:在NSRunLoopCommonModes回环通用模式下构建timer定时器实例化对象)。
//处于NSDefaultRunLoopMode运行环路默认模式中的定时器timer实例化对象
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerTick:) userInfo:nil repeats:YES];
//构建普通型定时器timer后再添加到NSRunLoopCommonModes环路通用模式里(解决定时器异常问题)
NSTimer *timer = [NSTimer timerWithTimeInterval: