记一些·笔记


  • Home

  • favorite

  • Tags

  • Categories

  • Archives

  • Search

mac-AppleScript

Posted on 2019-02-26 | In mac

简介

AppleScript是苹果公司开发的一种脚本语言,可以用来控制运行于mac实现自动化的有效工具,他通过类英语的语法,以及简单的编程功能,帮助你摆脱机械化的劳动。

AppleScript 包括如下三部分:

  • AppleScript 语言
  • AppleScript 脚本文件
  • AppleScript 脚本解释器
Read more »

iOS-多线程

Posted on 2019-02-22 | In iOS

简介

iOS 有三种多线程编程的技术,分别是:

  • NSThread
  • Cocoa NSOperation
  • GCD(全称:Grand Central Dispatch)

三种方式的优缺点介绍:

NSThread
优点:NSThread 比其他两个轻量级
缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销
NSThread实现的技术有下面三种:(一般使用cocoa thread)

Cocoa NSOperation
优点:不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。
Cocoa operation 相关的类是 NSOperation ,NSOperationQueue。
NSOperation是个抽象类,使用它必须用它的子类,可以实现它或者使用它定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。
创建NSOperation子类的对象,把对象添加到NSOperationQueue队列里执行。

GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。在iOS4.0开始之后才能使用。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。现在的iOS系统都升级到7了,所以不用担心该技术不能使用。

介绍完这三种多线程编程方式,本文将依次介绍这三种技术的使用。

Read more »

iOS 面向对象

Posted on 2019-02-22 | In iOS

面向对象三个特性

封装 继承 多态

封装

一个类封装了数据以及操作数据的代码逻辑体。定义了数据的可访问属性(私有、公有)

继承

可以让一个类型获取另外一个类型的属性的方式。分为实现继承和接口继承

多态

类实例的一个方法在不同情形下有不同的表现形式,即不同的外在行为。使具有不同的内部结构的对象可以共享相同的外部接口。

面向对象设计七大原则

单一 依赖 最少  开闭 替换 隔离  组合/聚合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1. 单一职责原则(Single Responsibility Principle)

每一个类应该专注于做一件事情。

2. 里氏替换原则(Liskov Substitution Principle)

超类存在的地方,子类是可以替换的。

3. 依赖倒置原则(Dependence Inversion Principle)

实现尽量依赖抽象,不依赖具体实现。

4. 接口隔离原则(Interface Segregation Principle)

应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。

5. 迪米特法则(Law Of Demeter)

又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用。

6. 开闭原则(Open Close Principle)

面向扩展开放,面向修改关闭。

7. 组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)

尽量使用合成/聚合达到复用,尽量少用继承。原则: 一个类中有另一个类的对象。
Read more »

iOS-Runtime

Posted on 2019-02-22 | In iOS

简介

Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动态机制的基石。

Objective-C 是一个动态语言,这意味着它不仅需要一个编译器,也需要一个运行时系统来动态得创建类和对象、进行消息传递和转发。理解 Objective-C 的 Runtime 机制可以帮我们更好的了解这个语言,适当的时候还能对语言进行扩展,从系统层面解决项目中的一些设计或技术问题。了解 Runtime ,要先了解它的核心 - 消息传递 (Messaging)。

Runtime其实有两个版本: “modern” 和 “legacy”。我们现在用的 Objective-C 2.0 采用的是现行 (Modern) 版的 Runtime 系统,只能运行在 iOS 和 macOS 10.5 之后的 64 位程序中。而 macOS 较老的32位程序仍采用 Objective-C 1 中的(早期)Legacy 版本的 Runtime 系统。这两个版本最大的区别在于当你更改一个类的实例变量的布局时,在早期版本中你需要重新编译它的子类,而现行版就不需要。
Runtime 基本是用 C 和汇编写的,可见苹果为了动态系统的高效而作出的努力。你可以在这里下到苹果维护的开源代码。苹果和GNU各自维护一个开源的 Runtime 版本,这两个版本之间都在努力的保持一致。

Read more »

mac-如何删除系统软件

Posted on 2019-02-18 | In mac

mac 系统软件有保护,要关闭SIP(System Integrity Protection 系统完整性保护),然后就可以删除了。

步骤1:command+r 进入恢复模式 然后打开终端输入命令:

1
2
csrutil disable 关闭SIP, 可允许删除系统软件
csrutil enable  打开SIP, 不允许删除系统软件

步骤2:
现在重启后可以删除 系统软件啦 😁

Read more »

RxSwift

Posted on 2019-02-18 | In 开发

详解 文档

Swift - RxSwift的使用详解1(基本介绍、安装配置)

Swift - RxSwift的使用详解2(响应式编程与传统式编程的比较样例)

Swift - RxSwift的使用详解3(Observable介绍、创建可观察序列)

Read more »
Chuck Lee

Chuck Lee

6 posts
3 categories
9 tags
RSS
永远相信 美好的事情即将发生