- 博客(6)
- 资源 (7)
- 问答 (2)
- 收藏
- 关注
原创 iOS - KVC底层应用
之前简单得讲过一些KVC的用法,但是并不能深入理解KVC内部实现及其原理,下面主要讲下KVC的底层原理。取值 valueForKey:在使用KVC取值的时候,使用valueForKey:方法,该方法会返回一个id类型的对象,那么它的内部会怎么处理的呢?现在我们使用该方法: Teacher *teacher = [[Teacher alloc] init]; NSString *...
2020-03-28 21:30:19 337
原创 iOS - 使用clang将Object-C代码转换为C++代码时 'UIKit/UIKit.h' file not found
问题在MacOS项目下使用clang命令clang -rewrite-objc main.m可以把main.m文件转换成C++文件,方便研究内部实现。但是如果是iOS项目的话执行上面clang命令就会报出下面错误:shiyudeMacBook-Pro:LeaksTest shiyusun$ clang -rewrite-objc main.mmain.m:9:9: fatal error: ...
2020-03-22 23:06:02 1324
原创 iOS-线程同步的几种方式
在多线程开发中数据的安全是非常重要的,在开辟分线程执行耗时操作以保证主线程不阻塞的同时,数据的安全也要保证才行。如果同一个资源(一个变量或者一段代码或者存储的数据等)同时被多个线程访问修改,可能会造成数据的错乱,得到的也就不是自己想要的结果,所以多线程开发中线程间的同步有时显得尤为重要。实现多线程间的同步方式:锁(互斥锁、条件锁、递归锁)和GCD(队列、信号量、栅栏)。了解更多类型的锁可以查看线...
2020-03-16 16:02:43 2264
原创 iOS - 线程中常见的几种锁
线程锁主要是用来解决“共享资源”的问题,实际开发中或多或少的都会用到各类线程锁,为了线程的安全我们有必要了解常见的几种锁,下面是本人查看一些大牛的博客然后整理的内容,加上自己的一些见解,水平有限,如果不慎有误,欢迎交流指正。常见锁列举自旋锁(OSSPinLock、os_unfair_lock)互斥锁(pthread_mutex_t、NSLock、@synthronized)递归锁(pth...
2020-03-15 21:20:47 1855
原创 iOS -多线程之pthread
pthread是POSIX thread的简写,一套通用的多线程API,适用于Unix、Linux、Windows等系统,跨平台、可移植,使用难度大的C语言框架,线程生命周期由程序员管理,百度百科上有详细的介绍。在多线程方面iOS有GCD、NSThread、NSOperation,所以开发时pthread几乎用不到,以下就简单运用pthread开启一个子线程,用来处理耗时操作。导入头文件想使用...
2020-03-12 16:20:52 509
原创 Swift - 泛型
泛型是Swift中重要的类型之一,意为不确定的类型。我们知道带有参数的函数是必需要指定参数的类型的,举个例子观察下面有几个同名函数实现相似的功能,但参数类型不同:一、节点泛型 func methodOne(param:String) { print("\(param)") } func methodTwo(param:Int) { prin...
2020-03-05 16:51:09 437
UIWebview加载html5链接,webview内容显示不全
2017-08-28
iOS webView高度不能变低
2017-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人