HTTP
基本知识 定义 超文本传输协议(Hyper Text Transfer Protocol,HTTP)。 在TCP/IP协议族位置 TCP/IP协议族分为4层 应用层 例如:DNS,DHCP,FTP,HTTP… 传输层 例如:TCP,UDP 网络层 例如:IP,ICMP… 数据链路层 http状态码 类别 ...
基本知识 定义 超文本传输协议(Hyper Text Transfer Protocol,HTTP)。 在TCP/IP协议族位置 TCP/IP协议族分为4层 应用层 例如:DNS,DHCP,FTP,HTTP… 传输层 例如:TCP,UDP 网络层 例如:IP,ICMP… 数据链路层 http状态码 类别 ...
注: 本文转自苹果官方文档在结构和类之间做出选择 概览 结构和类都是您在 app 中进行数据储存和行为建模的不错选择,但它们十分相似,可能让您难以做出选择。 在向 app 中添加新数据类型时,您不妨考虑以下建议来帮助自己做出合理的选择。 默认使用结构。 在需要 Objective-C 互操作性时使用类。 在需要控制建模数据的恒等...
安卓报错:Unable to load script.Make sure you are either running a Metro server or that your bundle ‘index.android.bundle’ is packaged correctly for release 场景: 触发这个报错的场景很多,比如已经用xcode拉起过Metro server,或者...
var 使用var声明的变量存在变量提升的情况 使用var,我们能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明 let 不存在变量提升 console.log(a) // 报错ReferenceError let a = 2 这表示在声明它之前,变量a是不存在的,这时如果用到它,就会抛出一个错误 let 不允许在相同作用域中重复声明 const const...
设计要求 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在...
Block的实现 Block的实质 main.m #include <stdio.h> int main(int argc, const char * argv[]) { void (^blk) (void) = ^ () { printf("Block\n"); }; blk(); return 0; } 在命令行输入: clang -rew...
什么是KVO KVO全称KeyValueObserving,俗称键值监听,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。由于KVO的实现机制,所以对属性才会发生作用,一般继承自NSObject的对象都默认支持KVO。 KVO实现原理 KVO是通过isa-swizzling技术实现的(这句话是整个KVO实现的重点)。 ...
定义 AutoreleasePool(自动释放池)是OC中的一种内存自动回收机制,它可以延迟加入AutoreleasePool中的变量release的时机。在正常情况下,创建的变量会在超出其作用域的时候release,但是如果将变量加入AutoreleasePool,那么release将延迟执行。 AutoreleasePool创建和释放 App启动后,苹果在主线程 Ru...
iOS渲染架构 在WWDC的Advanced Graphics and Animations for iOS Apps(WWDC14 419,关于UIKit和Core Animation基础的session在早年的WWDC中比较多)中有这样一张图: 离屏渲染的定义 如果要在显示屏上显示内容,我们至少需要一块与屏幕像素数据量一样大的frame buffer,作为像素数据存储区域,而这...
定义 Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定义想要执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并执行任务。由于线程管理是作为系统的一部分来实现的,因此可以统一管理,也可执行任务,这样就比以前的线程更有效率。 串行和并行决定执行顺序,串行...