永不止步的博客

定个小目标,每天进步一点点

关于iOS多线程的总结

一、多线程的基本概念进程:系统进行资源分配和调度的基本单位。线程:线程是CPU调度的基本单元,一个进程对应多个线程。同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程至少包括一个线程主线程:处理UI,所有更新UI的操作都必须在主线程上执行。不要把耗时操作放在...

2018-03-19 11:12:08

阅读数 101

评论数 0

App Store 审核必备

App Store 审核规则中文版 简介 App 正在改变世界,丰富人们的生活,并为像您一样的开发者提供前所未有的创新机会。因此,AppStore 已成长为一个激动人心且充满活力的生态系统,正为数百万的开发者和超过十亿的用户提供服务。不管是开发新手,还是由经验丰富的程序员所组成的大型团队,我们...

2019-04-26 16:37:41

阅读数 52

评论数 0

iOS基础

1、应用瘦身 iOS9新特性,根据用户设备型号,在保证应用程序完整的情况下,尽可能的压缩和减少应用程序安装包的体积,实现方法主要有三种:应用程序切片(Slicing)

2019-04-23 15:19:12

阅读数 4

评论数 0

KVO

概述 1、键值观察Key-Value-Observer就是观察者模式。利用一个key来找到某个属性并监听其值得改变。其实这也是一种典型的观察者模式。(KVO) 建立在 KVC 之上,它能够观察一个对象的 KVC key path 值的变化。 2、观察者模式的定义:一个目标对象管理所有依赖于它的...

2018-10-19 15:29:07

阅读数 21

评论数 0

KVC

概述 KVC是Key Value Coding的简称,即键值编码,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。 KVC使用 (1)获取值  valueForKey: 传入NSString属性的名字 valueForKeyPath:  属性的路径,x...

2018-10-19 15:11:08

阅读数 215

评论数 0

iOS基础

1、父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝? (1)区别:浅拷贝是指针的拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向这个对象的指针,那么就是有两个指针指向同一个对象, 这个对象销毁后,两个指针都应该置为空。深拷贝是对一个...

2018-10-19 14:45:53

阅读数 38

评论数 0

正则表达式语法规则

一、行定位符(^和$)   行定位符就是用来描述字串的边界。“^”表示行的开始;“$”表示行的结尾。如:   ^tm : 该表达式表示要匹配字串tm的开始位置是行头,如tm equal Tomorrow Moon就可以匹配   tm$ : 该表达式表示要匹配字串tm的位置是行尾,Tomorr...

2018-08-24 11:58:09

阅读数 1074

评论数 0

Swift防止按钮被连续点击

import Foundation // MARK: - 暂时解决不了 UITabBarButton 这种情况的处理办法,此分类暂时不能使用 extension UIButton { private static var ForbidIntervalKey = &qu...

2018-07-30 14:56:03

阅读数 991

评论数 0

swift按钮防连点

1、使用此方法,进行防连点操作,有一个弊端,就是会让实际操作延迟执行 @objc private func submitAction() { print("submitAction") self.classForCoder.c...

2018-07-30 10:53:44

阅读数 174

评论数 0

label添加删除线

label = UILabel.init(frame: CGRect.init(x: 20, y: 200, width: 500, height: 40))         label.font = UIFont.systemFont(ofSize: 14)         view.add...

2018-07-30 10:25:02

阅读数 45

评论数 0

Xcode快捷键

mac快捷键:窗口最大化:control+command+F窗口最小化:command+M关闭当前:    command+W退出程序:    command+QSafari往下翻页:空格隐藏当前:    command+H隐藏当前之外所有:command+option+H新建当前窗口:     ...

2018-07-12 10:33:17

阅读数 198

评论数 0

Swift中闭包的使用

本文主要介绍Swift中闭包的使用:"闭包的定义"、"闭包的创建、赋值、调用"、"闭包常见的几种使用场景"和"使用闭包可能引起的循环强引用" 闭包的定义:...

2018-04-05 23:10:23

阅读数 139

评论数 0

C语言的内存分配

OC是一门超C语言,所以了解C语言的内存模型对于理解OC的内存管理有很大的帮助。C语言的内存模型如下:从上图可以看出内存被分成了5个区,每个区的存储内容如下:栈区(stack):存放函数的参数值、局部变量的值等,由编译器自动分配释放,通常在函数执行结束后就释放了,其操作方式类似数据结构中的栈。栈内...

2018-03-23 17:39:19

阅读数 94

评论数 0

OC的内存管理

1、什么是内存管理程序在运行的过程中通常通过以下行为,来增加程序的的内存占用。(1)创建一个OC对象(2)定义一个变量(3)调用一个函数或者方法而一个移动设备的内存是有限的,每个软件所能占用的内存也是有限的当程序所占用的内存较多时,系统就会发出内存警告,这时就得回收一些不需要再使用的内存空间。比如...

2018-03-23 10:20:01

阅读数 79

评论数 0

iOS中属性@property中关键字的使用

1、@property是什么声明属性的语法,可以快速的为实例变量创建setter和getter方法,并允许通过点语法使用2、@property关键字使用说明strong 赋值时,调用对象的retain方法,使其引用计数加1weak 不增加对象的引用计数,也不持有对象,对象被释放时,自动置为nilc...

2018-03-22 14:41:43

阅读数 251

评论数 0

MVC与MVVM设计模式理解

MVC:简单来说就是,数据、试图、逻辑进行分层,实现解耦。MVVM:是Model-View-ViewMode模式的简称。由模型(Model)、视图(View)、视图模型(ViewModel)三部分组成.比MVC更加释放控制器臃肿,将一部分逻辑(耗时,公共方法,网络请求等)和数据的处理等操作从控制器...

2018-03-21 08:02:38

阅读数 124

评论数 0

为什么说Objective-C是一门动态的语言?

1、OC类的类型和数据变量的类型都是在运行是确定的2、OC 可以通过Runtime 这个运行时机制,在运行时动态的添加变量、方法和类。下面是关于动态/静态类型语言的定义:(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量...

2018-03-21 07:47:16

阅读数 79

评论数 0

iOS代理设计模式

iOS中消息传递方式通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式。代理:是一种通用的设计模式,iOS中对代理支持的很好,由代理对象、委托者、协议三部分组成。block:iOS4.0中引入的一种回调方法,可以将回调处理代码直接写在block代码块中,看起来逻辑清晰代码...

2018-03-19 22:18:45

阅读数 66

评论数 0

loadView的调用

1.什么时候被调用?每次访问UIViewController的view(比如controller.view、self.view)而且view为nil,loadView方法就会被调用。2.有什么作用?loadView方法是用来负责创建UIViewController的view。3.默认实现是怎样的?...

2018-03-16 18:25:25

阅读数 1146

评论数 0

+load 和 +initialize 的区别

+load 1、只要程序启动就会将所有类的代码加载到内存中, 放到代码区(无论该类有没有被使用到都会被调用)  2、load方法会在当前类被加载到内存的时候调用, 有且仅会调用一次 3、如果存在继承关系, 会先调用父类的load方法, 再调用子类的load方法 4、先加载原始类,在加载分类的loa...

2018-03-16 13:46:17

阅读数 54

评论数 0

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