iOS-NSDate

iOS 中日期时区的转换笔记

YYModel源码解析

最近重新阅读了一下 YYModel ,做下一些笔记

Hackintosh-i5-9400f-Tuf-B360M-With-10.15.0-Update

昨天(2019.10.15) 成功将一台的黑果升级(10.14.5 -> 10.15.0)之后,今天打算再升级一台工作机,配置如之前所说的

Hackintosh-i7-7700-Z270-AR-With-10.15.0

最近(2019-10-14) 苹果推送了10.15 Catalina , 而且也有黑果平稳升级案例,所以打算升级下家里的黑果(10.14.5)

i5-9400f + ASUS TUF B360M Plus Gaming S + 10.14.5

最近工作需要组了一台黑苹果,配置如下:

Cocoapod中静态库与动态库

最近在做一个需求时候,对 Cocoapod 有了一次新的理解,故做下笔记记录一下知识点.

动态路由

什么是移动端路由层:

路由层的概念在服务端是指url请求的分层解析,将一个请求分发到对应的应用处理程序。移动端的路由层指的是将诸如App内页面访问、H5与App访问的访问请求和App间的访问请求,进行分发处理的逻辑层。

链式编程思想-函数式变成思想计算器

编程思想

先简单介绍下目前已知的编程思想。

面向过程:处理事情以过程为核心,一步一步的实现。

面向对象:万物皆对象

链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好。a(1).b(2).c(3)

  • 链式编程特点 : 方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值)

  • 代表 : Masonry

响应式编程思想 : 不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。

  • 代表 :KVO

函数式编程思想 是把操作尽量写成一系列嵌套的函数或者方法调用

  • 函数式编程特点 : 每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)

  • 代表 : ReactiveCocoa

-

GCD学习

重新复习GCD

对GCD重新复习一次,加深了解

多线程概念

进程

  • 正在进行中的程序被称为进程,负责程序运行的内存分配
  • 每一个进程都有自己独立的虚拟内存空间

线程

  • 线程是进程中一个独立的执行路径(控制单元)
  • 一个进程中至少包含一条线程,即主线程
  • 可以将耗时的执行路径(如:网络请求)放在其他线程中执行

细说GCD(Grand Central Dispatch)

GCD(Grand Central Dispatch) 介绍

GCD属于系统级的线程管理,在Dispatch queue中执行需要执行的任务性能非常的高。GCD这块已经开源,地址 http://libdispatch.macosforge.org .GCD中的FIFO队列称为dispatch queue,用来保证先进来的任务先得到执行。

  • GCD 能通过推迟昂贵计算任务并在后台运行它们来改善你的应用的响应性能。
  • GCD 提供一个易于使用的并发模型而不仅仅只是锁和线程,以帮助我们避开并发陷阱。
  • GCD 具有在常见模式(例如单例)上用更高性能的原语优化你的代码的潜在能力。

GCD概要

  • 和operation queue一样都是基于队列的并发编程API,他们通过集中管理大家协同使用的线程池。

  • 公开的5个不同队列:运行在主线程中的main queue,3个不同优先级的后台队列(High Priority Queue,Default Priority Queue,Low Priority Queue),以及一个优先级更低的后台队列Background Priority Queue(用于I/O)

  • 可创建自定义队列:串行或并列队列。自定义一般放在Default Priority Queue和Main Queue里。

  • 操作是在多线程上还是单线程主要是看队列的类型和执行方法,并行队列异步执行才能在多线程,并行队列同步执行就只会在这个并行队列在队列中被分配的那个线程执行。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×