- 博客(241)
- 资源 (7)
- 收藏
- 关注
原创 iOS-申请邓白氏编码的超详细流程介绍(2017.06.12)
一、填写申请表单申请苹果开发者账号途中,我们会用到邓白氏编码,申请邓白氏编码的入口自然也是在申请苹果开发者账号途中进入。1.登录AppID登录入口:https://developer.apple.com/account/ .公司开发者账号一般都是由老板来管理的,所以使用老板的个人AppID登录就好了,没有就让老板申请一个。登录进来后进行以下操作: 选择Company/Origani
2017-06-12 15:35:28 35087 3
原创 第一部分 组织行为学 第二章 领导行为
[toc]领导行为fill:#333;color:#333;color:#333;fill:none;组织行为学组织激励需要 动力 激励激励理论激励理论与实践中的应用领导行为领导理论领导风格与技能领导决策组织设计与组织文化组织设计组织文化组织变革与发展。
2024-09-10 17:14:33 1152
原创 第一部分 组织行为学 第一章 组织激励
(3)ERG理论更为灵活变通,不是僵化地对待各种层次的需要,而是很好的补充了马斯洛需要层次理论的不足。(2)强化理论是一种行为主义的观点,即认为当人们做出某种行为后,若看到所希望的结果,这种结果就会成为控制行为的强化物,强化刚才的行为。(1)根据员工对工作和组织的投入来给于更多报酬,并确保不同的员工的投入/产出比大致相同,以保持员工的公平感。(2)、员工倾向于将自己的产出与投入的比率与他人(成为对照者)的产出与投入的比率相比较,来进行公平判断。(1)、亚当斯的公平理论指出,人们不仅关心自己的绝对报酬。
2024-06-17 16:28:51 932
原创 Swift 泛型
泛型代码让你能根据自定义的需求,编写出适用于任意类型的、灵活可复用的函数及类型。你可避免编写重复的代码,而是用一种清晰抽象的方式来表达代码的意图。泛型是 Swift 最强大的特性之一,很多 Swift 标准库是基于泛型代码构建的。实际上,即使你没有意识到,你也一直在语言指南中使用泛型。例如,Swift 的Array和Dictionary都是泛型集合。你可以创建一个Int类型数组,也可创建一个String类型数组,甚至可以是任意其他 Swift 类型的数组。
2024-06-12 15:16:12 948
原创 Swift 协议
协议定义了一个蓝图,规定了用来实现某一个特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体或枚举都可以遵循协议,并为协议定义的这些要求提供具体实现。某个类型能够满足某个协议的要求,就可以说该类型遵循这个协议。除了遵循协议的类型必须实现的要求外,还可以对协议进行扩展,通过扩展来实现一部分要求或者实现一些附加功能,这样遵循协议的类型就能够使用这些功能。
2024-06-04 16:14:17 1107
原创 Swift 扩展
拓展可以给一个现有的类,结构体,枚举,还有协议添加新的功能。它还拥有不需要访问被扩展类型源代码就能完成扩展的哪里(即逆向建模)。扩展和 Objective-C 的分类很相似。(与 Objective-C 分类不同的是,Swift 扩展是没有名字的。在 Swift 中,你甚至可以扩展协议以提供其需要的实现,或者添加额外功能给遵循的类型所使用。你可以从 协议扩展 获取更多细节。注意扩展可以给一个类型添加新的功能,但是不能重写已经存在的功能。
2024-06-03 15:31:40 441
原创 Swift 嵌套类型
枚举常被用于为特定类或结构体实现某些功能。类似地,枚举可以方便的定义工具类或结构体,从而为某个复杂的类型所使用。为了实现这种功能,Swift 允许你定义嵌套类型,可以在支持的类型中定义嵌套的枚举、类和结构体。要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的{}内,而且可以根据需要定义多级嵌套。
2024-06-03 10:19:34 371
原创 Swift 类型转换
你可以将类型转换用在类和子类的层次结构上,检查特定类实例的类型并且转换这个类实例的类型成为这个层次结构中的其他类型。下面的三个代码段定义了一个类层次和一个包含了这些类实例的数组,作为类型转换的例子。第一个代码片段定义了一个新的基类MediaItem。这个类为任何出现在数字媒体库的媒体项提供基础功能。特别的,它声明了一个String类型的name属性,和一个初始化器。(假定所有的媒体项都有个名称。下一个代码段定义了MediaItem的两个子类。第一个子类Movie。
2024-05-31 17:28:33 1024
原创 Swift 并发
异步函数或异步方法是一种能在运行中被挂起的特殊函数或方法。对于普通的同步函数或方法来说,它们只能运行到完成闭包、抛出错误或者永远不返回。异步函数或方法也能做到这三件事,但同时也可以在等待其他资源的时候挂起。在异步函数或者方法的函数体中,你可以标记其中的任意位置是可以被挂起的。为了标记某个函数或者方法是异步的,你可以在它的声明中的参数列表后边加上async关键字,和使用throws关键字来标记throwing函数是类似的。如果一个函数或方法有返回值,可以在返回箭头(->)前添加async关键字。
2024-05-31 16:21:15 1221
原创 Swift 错误处理
错误处理(Error handing)是响应错误以及从错误中恢复的过程。Swift 在运行时提供了抛出、捕获、传递和操作可恢复错误(recoverable errors)的一等支持(first-class support)。某些操作无法保证总是执行完所有代码或生成有用的结果。可选类型用来表示值缺失,但是当某个操作失败时,理解造成失败的原因有助于你的代码做出相应的应对。
2024-05-30 10:45:51 851
原创 Swift 可选链式调用
通过使用可选链式调用可以调用多层属性、方法和下标。这样可以在复杂的模型中向下访问各种子属性,并且判断能否访问子属性的属性、方法和下标。下面这段代码定义了四个模型类,这些例子包括多层可选链式调用。为了方便说明,在Person和Residence的基础上增加了Room类和Address类,以及相关的属性、方法以及下标。PersonResidence类比之前复杂些,增加了一个名为rooms的变量属性,该属性被初始化为[Room]get {set {现在Residence有了一个存储Room实例的数组,
2024-05-30 09:29:24 578
原创 Swift 析构过程
析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字deinit来表示,类似于构造器要用init来表示。
2024-05-29 15:26:42 455
原创 Swift 继承
不继承于其它类的类,称之为基类。注意Swift 中的类并不是从一个通用的基类继承而来的。如果你不为自己定义的类指定一个超类的话,这个类就会自动成为基类。下面的例子定义了一个叫Vehicle的基类。这个基类声明了一个名为,默认值是0.0的存储型属性(属性类型推断为Double属性的值被一个String类型的只读计算型属性使用,用来创建对于车辆的描述。Vehicle基类还定义了一个名为makeNoise的方法。这个方法实际上不为Vehicle实例做任何事,但之后将会被Vehicle。
2024-05-28 13:43:34 905
原创 Swift 下标
下标可以定义在类、结构体和枚举中,是访问集合、列表或序列中元素的快捷方式。可以使用下标的索引,设置和获取值,而不需要再调用对应的存取方法。举例来说,用下标访问一个Array实例中的元素可以写作,访问Dictionary实例中的元素可以写作。一个类型可以定义多个下标,通过不同索引类型进行对应的重载。下标不限于一维,你可以定义具有多个入参的下标满足自定义类型的需求。
2024-05-28 11:26:23 1136
原创 Swift 方法
方法是与某些特定类型相关联的函数。类、结构体、枚举都可以定义实例方法;实例方法为给定类型的实力封装了具体的任务与功能。类、结构体、枚举也可以定义类型方法;类型方法与类型本身相关联。类型方法与 Objective-C 中的类方法(class methods) 相似。结构体和枚举能够定义方法是 Swift 与 C/Objective-C 的主要区别之一。在 Objective-C 中,类是唯一能定义方法的类型。
2024-05-27 17:20:06 773
原创 Swift 属性
属性将值与特定的类、结构体或枚举关联。存储属性会将常量和变量存储为实例的一部分,而计算属性则是直接计算(而不是存储)值。计算属性可以用于类、结构体和枚举,而存储属性只能用于类和结构体。存储属性和计算属性通常与特定类型的实例关联。但是,属性也可以直接与类型本身关联,这种属性称为类型属性。另外,还可以定义属性观察器来监控属性值的变化,以此来触发自定义的操作。属性观察器可以添加到类本身定义的存储属性上,也可以添加到从父类继承的属性上。你也可以利用属性包装器来复用多个属性的getter和setter。
2024-05-27 15:18:45 1235
原创 Swift 类和结构体
结构体和类有着相似的定义方式。你通过struct关键字引入结构体,通过class// 在这里定义结构体// 在这里定义类注意每当你定义一个新的结构体或者类时,你都是定义了一个新的 Swift 类型。请使用这种方式来命名类型(如这里的SomeClass和),以便符合标准 Swift 类型的大写命名风格(如StringInt和Bool请使用这种方式来命名属性和方法(如frameRate和),以便和类型名区分。在上面的示例中定义了一个名为Resolution的结构体,用来描述基于像素的分辨率。
2024-05-24 14:09:27 944
原创 Swift 枚举
枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值。如果你熟悉 C 语言,你会知道在 C 语言中,枚举会为一组整型值分配相关联的名称。Swift 中的枚举更加灵活,不必给每一个枚举成员提供一个值。如果给枚举成员提供一个值(称为原始值),则该值的类型可以是字符串、字符,或是一个整型值或浮点数。此外,枚举成员可以指定任意类型的关联值存储到枚举成员中,就像其他语言中的联合体(unions)和变体(variants)。
2024-05-24 11:10:22 813
原创 Swift 闭包
必报是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)一级其他一些编程语言中的匿名函数(Lambdas)比较相似。闭包可以捕获和存储其所在上下文中任意常量和变量的引用。被称为包裹常量和变量。Swift 会为你管理在捕获过程中涉及到的所有内存操作。在Swift 的闭包表达式拥有简洁的风格,并鼓励在常见场景中进行语法优化,主要优化如下return。
2024-05-10 16:47:29 623
原创 Swift 函数
当你定义一个函数时,你可以定义一个或多个有名字的类型的值,作为函数的输入,称为参数,也可以定义某种类型的值作为函数执行结束时的输出,称为返回类型。每个函数有个函数名,用来描述函数执行的任务。要使用一个函数时,用函数名来“调用”这个函数,并传给它匹配的输入值(称作实参)。函数的实参必须与函数参数表里参数的顺序一致。下面例子中的函数的名字是,之所以叫这个名字,是因为这个函数用一个人的名字当做输入,并返回向这个人问候的语句。为了完成这个任务,你需要定义一个输入参数——一个叫做person的String。
2024-05-10 10:33:15 853
原创 Swift 控制流
Swift 提供了多种流程控制结构,包括可以多次执行任务的while循环,基于特定条件选择执行不同代码分支的ifguard和Switch语句,还有控制流程跳转到其他代码位置的break和continue语句。Swift 还提供了for-in循环,用来更简单地遍历数组(Array),字典(Dictionary),区间(Range),字符串(String)和其他序列类型。Swift 的Switch语句比许多类C语言要更加强大。case还可以匹配很多不同的模式,包括范围匹配,元组(tuple。
2024-05-09 16:25:41 929
原创 Swift 集合类型
Swift 语言提供数组(Array)、集合(Set)和字典(Dictionary)三种基本的集合类型用来存储集合数据。数组是有序数据的集。集合是无序无重复数据的集。字典是无序的键值对的集。Swift 中的数组、集合和字典必须明确其中保存的键和值类型,这样就可以避免插入一个错误数据类型的值。同理,对于获取到的值你也可以放心,其数据类型是确定的。注意:Swift 的数组、集合和字典类型被实现为泛型集合。
2024-05-09 14:34:08 824 2
原创 Swift 字符串和字符
字符串是一系列字符的集合,例如。Swift 的字符串通过String类型来表示。而String内容的访问方式有多种,例如以Character值的集合。Swift 的String和Character类型提供了一种快速且兼容Unicode的方式来处理代码中的文本内容。创建和操作字符串的语法与C语言中字符串操作相似,轻量并且易读。通过符号就可以非常简单的实现两个字符串的拼接操作。与 Swift 中其他值一样,能否更改字符串的值,取决于其被定义为常量还是变量。
2024-05-08 13:58:33 1175
原创 Swift 基本运算符
运算符是检查、改变、合并值的特殊符号或短语。例如,加号(+)将两个数相加(如 let i = 1 + 2)。更复杂的运算例子包括逻辑与运算符 &&(如 if enteredDoorCode && passedRetinaScan)。Swift 所支持运算符你可能在别的语言比如 C 语言里已经认识了,同时为了减少常见编码错误对它们做了部分改进。如:赋值符(=)不再有返回值,这样就消除了手误将判等运算符(==)写成赋值符导致代码错误的缺陷。
2024-05-08 10:38:46 1107
原创 Swift 基础部分
Swift 是一门开发 iOS, macOS, watchOS 和 tvOS 应用的新语言。然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的。Swift 包含了 C 和 Objective-C 上所有基础数据类型,Int 表示整型值;Double 和 Float 表示浮点型值;Bool 是布尔型值;String 是文本型数据。Swift 还提供了三个基本的集合类型,Array、Set 和 Dictionary ,详见 集合类型。
2024-05-07 16:28:14 1040
原创 iOS 组件化
一、为什么需要组件化随着公司业务的不断发展,项目的功能越来越复杂,各个业务代码耦合越来越多,代码量急剧增加,传统的 MVC 或者 MVVM 架构已经无法高效的管理工程代码,因此需要用一种技术来更好地管理工程,而组件化是一种能够解决代码耦合的技术。项目经过组件化的拆分,不仅可以解决代码耦合的问题,还可以增强代码的复用性,工程的易管理性等。组件化的优势有利于代码模块的封装和复用。对不同的业务模块可以进行物理隔离(通过git私有 仓库权限控制),进一步提升代码的稳定性和安全性。项目整体结构层次分明,便
2022-01-04 14:53:09 2636
原创 iOS Instrument
Xcode 12.4Blank:空白,可以使用库中的工具定制的空白跟踪文档Activity Monitor:活动监视器,监视进程和系统的CPU、内存、磁盘和净工作使用量统计数据Allocations:分配,跟踪进程的匿名虚拟内存和堆,为对象提供类名和可选的保留/释放历史Animation Hitches:动画监视,此模板通过时间分析来度量应用程序图形性能以及进程的CPU使用情况App Launch:启动问题,可以用于查看App的启动过程,从而可以针对性的对启动速度进行优化Core Data:
2021-05-17 16:05:37 588
原创 iOS 设计模式
一、六大设计原则单一职责原则依赖倒置原则开闭原则里氏替换原则接口隔离原则迪米特法则1、单一职责原则一个类只负责一件事2、依赖倒置原则抽象不应该依赖于具体实现,具体实现可以依赖于抽象3、开闭原则对修改关闭、对扩展开放4、里氏替换原则父类可以被子类无缝替换,且原有功能不受任何影响5、接口隔离原则使用多个专门的协议,而不是一个庞大臃肿的协议协议中的方法尽量少6、迪米特法则一个对象应当对其他对象有尽可能少的了解高内聚、低耦合二、责任链问题:解决方案:...
2021-05-12 13:55:56 270
原创 iOS 网络
#mermaid-svg-dnotgPy8NLSxqDWV .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-dnotgPy8NLSxqDWV .label text{fill:#333}#mermaid-svg-dnotgPy8NLSxqDWV .node rect,#mermaid-svg-dnotgPy8NL
2021-05-11 16:26:09 283
原创 iOS 多线程
#mermaid-svg-AxD3XhAQartdSFY5 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-AxD3XhAQartdSFY5 .label text{fill:#333}#mermaid-svg-AxD3XhAQartdSFY5 .node rect,#mermaid-svg-AxD3XhAQar
2021-05-08 18:09:25 187
原创 iOS Block
#mermaid-svg-bf4zeaT6GaxRXT7K .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-bf4zeaT6GaxRXT7K .label text{fill:#333}#mermaid-svg-bf4zeaT6GaxRXT7K .node rect,#mermaid-svg-bf4zeaT6Ga
2021-05-07 09:53:04 172
原创 iOS 内存管理
内容管理相关问题一、内存布局stack(栈区):方法调用heap(堆区):通过alloc等分配的对象bss(未初始化数据):未初始化的全局变量等data(已初始化数据):已初始化的全局变量等text(代码段):程序代码二、内存管理方案TaggedPointer:用于优化NSNumber,NSDate,NSString等小对象的存储。NSNumber指针里边存储的数据是:tag+data,也就是直接将数据存储在指针里。这样做特别节省空间。如果这个数据特别大,指针存储不下这个数,那么会
2021-04-29 15:49:06 432
原创 iOS runtime之类和对象(二)
每个Class都有一个isa指针指向一个唯一的Meta Class每一个Meta Class 的isa 指针都指向Meta Class,即NSObject的MetaClass,而最上层的MetaClass的isa指针又指向自己。一、对象、类对象、元类对象1、类对象类对象存储实例方法列表等信息类对象是程序猿定义并在运行时由编译器创建的,它没有自己的实例变量,这里需要注意的是类的成员变量和实例方法是属于实例对象的,但其存储于类对象当中的。2、实例对象实例对象是我们对类对象alloc或者new..
2020-09-03 18:04:01 160
原创 iOS runtime之元素认知(一)
一、什么是runtime简而言之,Objective-C Runtime是一个将C语言转化为面向对象语言的扩展。我们将C++和Objective进行对比,虽然C++和Objective-C都是在C的基础上加入面向对象的特性扩充而成的程序设计语言,但二者实现的机制差异很大。C++是基于静态类型,而Objective-C是基于动态运行时类型。也就是说用C++编写的程序编译时就直接编译成了可令机器读懂的机器语言;用Objective-C编写的程序不能直接编译成可令机器读懂的机器语言,而是在程序运行的时候,通过
2020-09-03 15:10:17 215
原创 iOS 属性关键字
一、分类读写权限原子性引用计数二、读写权限readwrite 读写,readonly 只读。属性默认是readwrite,支持读写。1、readonly属性只具有get方法;2、readwrite属性同时具有set和get方法;三、原子性1、nonatomic非原子的,atomiiac原子的。属性默认是atomiac,也就是原子性的。nonatomic执行效率高。2、atomic读写安全,但效率低,不是绝对的安全,比如操作数组,增加或移除买这种情况下使用互斥锁来保证线程安全。
2020-09-01 11:58:32 411
原创 iOS KVC
一、KVC简介KVC全称是Key Value Coding(键值编码),是一个基于NSKeyValueCoding非正式协议实现的机制,他可以直接通过Key值对对象的属性存取操作,而不需通过明确的存取方法。这样就可以在运行时动态在访问和修改对象的属性,而不是在编译时确定。KVC提供了一种间接访问属性方法或成员变量的机制,可以通过字符串来访问对象的属性方法或成员变量;在实现了访问器方法的类中,使用点语法和KVC访问对象其实差别不大,二者可以任意混用(因为KVC会首先搜索访问器方法,见下文)。但是没有访
2020-08-28 17:34:00 523
原创 iOS 通知(NSNotification)
一、通知1、基本概念NSNotification是iOS中一个调度消息通知的类,采用单例模式设计,在程序中实现传值、回调等地方应用很广。在iOS中,NSNotification & NSNotificaitonCenter是使用观察者模式来实现的用于跨层传递消息。2、什么情况下使用通知观察者模式:定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得道通知并自动更新。二、通知的特点是使用观察者模式来实现的用于跨层传递消息的机制;传递方式为一对多;三
2020-08-20 13:53:11 3106
原创 iOS 代理(Delegate)
一、代理的特点准确的说是一种软件设计模式iOS当中以@protocol形式提现传递方式一对一二、代理的基本使用代理是一种通用的设计模式,在iOS中有特定的语法来实现代理模式,OC语言可以通过@Protocol实现协议。1、代理组成部分协议:用来指定代理双方可以做什么,必须做什么。代理:根据协议,完成委托方需要实现的功能(方法)。委托:根据协议,指定代理去完成什么功能。2、协议(Protocol)的概念从上图中我们可以看到三方之间的关系,在实际应用中通过协议来规定代理双方的行为
2020-08-17 09:49:46 3763
全国城市商圈经纬度MYSQL版
2024-05-08
RuntimeObject.zip
2020-09-04
RuntimeObject.zip
2020-09-04
iOS-KVC的实现
2020-08-28
iOS-KVO.zip
2020-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人