概述
项目中遇到了socks5代理环境下UDP不通的问题,在解决问题的过程中,也学习了socks5到底是如何通信的,下面就原理、客户端、服务器三个方面来详细说一下。
阅读全文一直搞不明白Socket
、WebSocket
、WebRTC
的关系,最近有时间,就来研究一下。
在学习安卓的过程中,发现java
的泛型机制特别的好用,Objective-C
是一门动态性弱类型语言,例如毫无关系的两个类A
和B
,A *a = [[B alloc] init]
在Objective-C
编译和运行中都不会出错。但是A a = new B()
在java
中编译失败。这样,可以强制编程人员注意类型转换。
在不了解Objective-C
的泛型之前,我一直以为Objective-C
的泛型是鸡肋,例如:
|
我声明一个NSString
类型的泛型数组,但是我往数组中添加的是一个NSObject
类型的对象,虽然编译器会警告,但并不会报错(大部分程序猿也会忽略这个警告)。所以,我认为Objective-C
的泛型是鸡肋。当然,这只是我之前的自以为(还是自己学的不深入)。但是今天看过一篇介绍Objective-C
的泛型以后,才发现Objective-C
也能做到编译时报错。
网上关于KVC和KVO的介绍一大片,基本用法这里就不介绍了,这篇主要聊聊KVC和KVO的实现,以及我们自己动手实现一套KVO。
阅读全文我们都知道,每个类都有两个初始化方法,其中一个就是load
方法,对于每一个Class
和Category
来说,必定会调用此方法,而且仅调用一次。当包含Class
和Category
的程序被库载入系统时,就会执行此方法,并且此过程通常是在程序启动的时候执行。
不同的是,现在iOS
系统中已经加入了动态加载特性,这是从macOS
应用程序中迁移而来的特性,等应用程序启动好之后再去加载程序库。如果Class
和其Category
中都重写了load
方法,则先调用Class
中的。那么为什么会先调用Class
的load
方法呢?通过这篇文章想必你会有个答案。
iOS开发中,多线程开发是个头疼的问题,最大的问题就是资源竞争问题。同一时间,多个线程对资源的读或者写都有可能造成不可预知的问题。解决这种问题的手段就是在操作资源的时候加上锁,那么常用的锁都有哪几种呢?本篇博客就来简单的说一说。
阅读全文导航一直是App
开发中比较重要的一个组件,ReactNative
提供了两种导航组件供我们使用,分别是:NavigatorIOS
和Navigator
,但是前者只能用于iOS
平台,后者在ReactNative
0.44版本以后已经被移除了。好在有人提供了更好的导航组件,就是我们今天要讲的react-navigation
,并且ReactNative
官方更推荐我们使用此组件。
在Android
系统中,知道为什么有些软件杀不死么?很大的原因就是Service
。那Service
是什么?
Service
是Android
四大组件之一,开发中会经常用到它,例如当检测到App
有新版本的时候,这时候我们一般会开启一个Service
去后台下载新包,这时候,无论用户是否清除我们的App
,都不会影响下载进度。
无论是iOS
还是Android
,通常都会用到混合模式开发,这就要使用到WebView
了,通过js
和原生交互,可以实现很多功能。今天就来研究一下WebView
。
iOS开发者
会一点RN和android, 十足的海贼迷
河南信悦通网络科技有限公司