lufei's Studio.

lufei's Studio.

纸上得来终觉浅,绝知此事要躬行。

iOS 符号表(dSYM)
今天是个适合学习的日子,嘻嘻嘻QAQ 什么是符号表它是内存地址与函数名,文件名,行号的映射表。大概长这样:<起始地址> <结束地址> <函数> [<文件名:行号>] 符号表文件.dSYM实际上是从Mach-O文件中抽取调试信息而得到的文件目录,实际用于保存调试信息的文件夹是DWARF 如果利用这些二进制的地址信息来定位问题是不可能的,因此我们需要将这些二进制的地址信息还原成源代码种的函数以及行号,这时候就需要符号表了。 特别地,如果使用bugly来做crash上报管理,只需要将构建时的符号表上传到bugly,当应用crash时,bugly会...
浅谈runloop
参考深入理解RunLoop RunLoop 是 iOS 和 OSX 开发中的概念,首先,先简单介绍我目前已知的东西 RunLoop和线程的关系: RunLoop的作用就是用来管理线程的,当线程的RunLoop开启后,线程就会在执行完任务后,处于休眠状态,随时等待接受新的任务,而不是退出。 只有主线程的RunLoop是默认开启的,所以程序在开启后,会一直执行,不会退出,其他线程的RunLoop如果需要开启,就手动开启。 RunLoop内部是如何实现的: 有一个判断循环的条件,满足条件,就一直循环。 线程得到唤醒事件被唤醒,事件处理完毕以后,回到睡眠状态,等待下次唤醒。 上面的谈论可能太...
NTA打洞
NTA打洞只有一方处于NAT设备后此种情况是所有P2P场景中最简单的,它使用一种被称为“反向链接技术”来解决这个问题。大致的原理如下所述。 如图所示,客户端A位于NAT之后,它通过TCP端口1234连接到服务器的TCP端口1235上,NAT设备为这个连接重新分配了TCP端口62000。客户端B也通过TCP端口1234连接到服务器端口1235上。A和B从服务器处获知的对方的外网地址二元组{IP地址:端口号}分别为{138.76.29.7:1234}和{155.99.25.11:62000},它们在各自的本地端口上进行侦听。 由于B...
NAT与内网穿透
NATNAT是什么 网络地址转换,就是替换IP报文头部的地址信息.由于IPv4地址有限,不可能为每一个上网设备分配一个ip,而NAT就是来解决这个问题的.我们在上网时很有可能处在一个NAT设备之后, NAT设备会在ip包通过时会修改其 源/目标IP地址,有时还会修改TCP/UDP协议的端口号,从而实现多台设备使用同一外网IP进行互联网通讯 如上,三台设备都使用120.131.92.21这一公网IP。 而对于这三台设备分别从各自端口发出的TCP/UDP请求,则映射至NAT设备不同的端口上, 记录在NAT表上, 这样就区分了某个请求试试来自哪个设备的哪个端口上. NAT特点1234567...
第一次写博客
关于“我”在下路小飞,喜欢《one piece》,但是苦于没发去伟大航路,好吧,我想在这里分享一些最近所学到的东西,为了记录,为了以后回忆~ 关于“今天”要做的能够每天都比昨天多知道一点,这样我就满足了,嘻嘻嘻 以后接下来,我想在这里分享一些所见所得吧~~加油QAQ 咦,下面这个是我了没错~ 下图出自《冰菓》的最后一集的最后一刻,美好就是需要像这样记录下来:
iOS中的库----初识
前言做iOS的过程中会引用一些三方库,而这些库,有的是.a,有的是.framework,有的是.dylib,有的是.tbd,说实话,我还是比较晕的,做个笔记,方便记忆QAQ。 静态库和动态库 静态库(.a)和动态库(.dylib)都是编译好的二进制文件,区别在于用法。 对于一个静态库而言,其实已经是编译好的了,类似一个 .o 的集合。在 build 的过程中只会参与链接的过程,而这个链接的过程简单的讲就是合并,并且链接器只会将静态库中被使用的部分合并到可执行文件中去,在编译链接的时候,会将静态库的所有文件都添加到目标 app 可执行文件中,并在程序运行之后,静态库与 app 可执行...
初学Method Swizzling
最近开始学习 Method Swizzling,分享一些学习收获吧。 提到 Method Swizzling,就得提到OC的方法替换了,总结一下,大概应该有这样几种吧: 1.**重写类的方法(Overriding Methods)**:这个就不多说了 2.**伪装(Posing)**:Posing是个很有趣的技术,不过已经过时了,因为64位和iPhone环境下的Objective-C Runtime中不再支持它了. 通过这个伪装(posing),你可子类化,然后将这个子类伪装成它的父类。像变魔术一般,Runtime会让这个子类应用于各处,这时方法复写又有了用处。既然被抛弃了,也就不必多费...
杂七杂八小合集
2016.8.18UITextField 两个属性: inputView 自定义键盘 inputAccessoryView 键盘附属视图 后端技术杂谈 iOS 推送APNS 的 推送机制 当你的iPhone收到推送信息后到底会发生什么呢?总共有三种可能性: app在前台运行. 接收到推送信息时屏幕上不会有任何显示,也不会有提示音,但你的app delegate会收到这个推送信息。你可以在这里加入代码来处理接收到的信息。 app不在前台运行。iPhone可能停留在主界面或者另一个app正在运行.一个提示窗口会弹出,可能伴随着提示音。用户可以点击Close按钮来关闭这个窗口或者点...
avatar
路小飞
海内存知己,天涯若比邻!