iOS
Eden Ma
此人不懒,什么都没有写
展开
-
iOS中Block完全详解
欢迎大家关注我的个人博客:https://darkknightkazuma.github.io #一、Block基础介绍 ##1、概念介绍 Block又称为块或块对象,它是苹果在OSX10.6和iOS4.0中新加入的功能,是C语言层面的特性及功能实现,类似其它语言的闭包(closure)功能.当时苹果正使用LLVM的clang作为C语言的编译器来改进C/OC/C++/OC++等的编译处理,Blo...原创 2020-04-07 20:27:28 · 2208 阅读 · 0 评论 -
iOS手动分配线程栈空间
+(NSThread *)creatThreadWIthTarget:(id)target selector:(SEL)selector object:(id)argument stackSize:(NSUInteger)size {//栈空间的最小值为16kb,且必须为4k倍数 if ((size % 4096) != 0) {//不是4kb的倍数则返回nil;原创 2018-02-03 16:52:47 · 725 阅读 · 0 评论 -
iOS关于property中的atomic和nonatomic
首先这两个属性特质是为了处理多线程安全问题,那么什么是多线程安全,多线程安全就是多个线程访问同一段代码、指针区域、内存区域的时候出现的异常不安全情况。首先,我们要知道内存的访问时串行的,并不会导致内存数据的错乱或者应用的crash,以及读写的内存长度小于等于地址总线的长度,那么读写的操作是原子的,一次完成。例如BOOL,int,long在64位系统下的单次读写都是原子操作,无需担心线程安全问题。那...原创 2018-04-09 16:24:52 · 489 阅读 · 0 评论 -
iOS开发中的MVP架构
由于最近开发的新项目使用了MVP(Model View Presenter)架构,故在此做一些记录。 目前初步的理解MVP为对MVC的进一步的解耦,尤其是对C层进行了很好的瘦身,将任务分摊到了M和P层。 MVP的各个层的作用简单总结一下: Model:该层和MVC中的Model层相似,但是多了对数据的存储和网络请求的操作。MPV中将网络请求的执行和数据库的操作都放在了Model层,也就是说M...原创 2018-07-15 18:39:52 · 907 阅读 · 0 评论