自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (1)
  • 收藏
  • 关注

原创 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 2111

原创 iOS开发中的MVP架构

由于最近开发的新项目使用了MVP(Model View Presenter)架构,故在此做一些记录。目前初步的理解MVP为对MVC的进一步的解耦,尤其是对C层进行了很好的瘦身,将任务分摊到了M和P层。MVP的各个层的作用简单总结一下:Model:该层和MVC中的Model层相似,但是多了对数据的存储和网络请求的操作。MPV中将网络请求的执行和数据库的操作都放在了Model层,也就是说M...

2018-07-15 18:39:52 879

原创 iOS关于property中的atomic和nonatomic

首先这两个属性特质是为了处理多线程安全问题,那么什么是多线程安全,多线程安全就是多个线程访问同一段代码、指针区域、内存区域的时候出现的异常不安全情况。首先,我们要知道内存的访问时串行的,并不会导致内存数据的错乱或者应用的crash,以及读写的内存长度小于等于地址总线的长度,那么读写的操作是原子的,一次完成。例如BOOL,int,long在64位系统下的单次读写都是原子操作,无需担心线程安全问题。那...

2018-04-09 16:24:52 455

原创 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 699

原创 iOS耗电优化

耗电优化代码,根据需要开启关闭一些耗电操作- (BOOL)shouldproceesdWithMinLevel:(NSUInteger)minLevel{//minLevel1~100    UIDevice *device = [UIDevicecurrentDevice];    device.batteryMonitoringEnabled =YES;//开启电量监控

2018-02-02 17:29:38 1045

原创 unsafe_unretained和weak弱引用避免保留环(循环引用)区别

unsafe_unretained和weak都可以作为属性特质避免循环引用,他们的区别是:unsafe_unretained所修饰属性是不安全的,而且不归此事例拥有,如果系统已经把属性所指的那个对象回收,那么在回收的对象上调用方法会导致程序崩溃,而weak所修饰属性则会指向nil,这样就不会导致程序崩溃。

2017-12-15 17:51:22 315

Run Loops.pdf

iOS Runloop官方文档翻译.Run loops 是线程相关的的基础框架的一部分。一个 run loop 就是一个事件处理 的循环,用来不停的调度工作以及处理输入事件。使用 run loop 的目的是让你的线 程在有工作的时候忙于工作,而没工作的时候处于休眠状态。 Run loop 的管理并不完全自动的。你仍然需要设计你的线程代码在合适的时候启 动 run loop 并正确响应输入事件。Cocoa 和 Core Fundation 都ᨀ供了 run loop objects 来帮助配置和管理你线程的 run loop。你的应用程序不需要显式的创建这些 对象(run loop objects);每个线程,包括程序的主线程都有与之对应的 run loop object。只有辅助线程才需要显式的运行它的 run loop。在 Carbon 和 Cocoa 程序中, 主线程会自动创建并运行它 run loop,作为一般应用程序启动过程的一部分。

2020-02-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除