自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

转载 内存泄漏的情况

iOS 出现内存泄漏的几种原因

2018-03-28 19:37:38 185

转载 RunTime

runtime从入门到精通(一)—— 初识runtimeruntime从入门到精通(二)—— 官方文档翻译runtime从入门到精通(三)—— runtime常用接口方法runtime从入门到精通(四)—— 一些runtime相关术语的数据结构runtime从入门到精通(五)—— 消息发送和消息转发runtime从入门到精通(六)—— runtime在实际开发中的应用runtime从入门到精通(七...

2018-03-28 19:21:11 278

转载 [Git] Xcode9 版本控制管理

[Git] Xcode9 版本控制管理Git<图文教程>

2018-03-26 21:18:46 163

转载 GitHub 远程仓库创建

引言我写代码很规范, 而且注意存储, 可是一直都是存储在U盘里, 越来越大. 自从了解到git之后, 就很想使用它来协助自己写项目, 最近完成了一个项目的编写, 所以静下来好好整整git, 争取使用它来协助完成下个项目. 特地将学习过程记录下来, 也和大家做个分享.git的下载和安装官方下载地址: https://git-scm.com/downloads/ 下载完成后, 就像正常软件似的双击.d...

2018-03-26 21:12:57 233

原创 归档(三种状况)

那么iOS的数据化持久方式有哪些呢?1:属性列表(Plist文件),NSUserDefault2:归档(NSKeyedArchiver)3:数据库(SQlite,CoreData,FMDB(第三方))今天重点说下归档和结档的问题归档的三种方式:1:对foundation框架的对象进行归档2:对自定义的对象进行归档3:对自定义内容进行归档** 注意:归档生成的文件是加密的**下边举简单的例子分别说...

2018-03-18 20:30:57 276

原创 偏好设置

保存数据使用偏好设置对数据进行保存之后, 它保存到系统的时间是不确定的,会在将来某一时间点自动将数据保存到Preferences文件夹下面,如果需要即刻将数据存储,必须使用[defaults synchronize]想要实现自定义对象的存储,需要将该对象转化为NSData类型,再进行保存  //获取NSUserDefaults对象  NSUserDefaults *defaults = [NSUs...

2018-03-18 17:37:43 623

原创 NSData

NSData是用来包装数据的NSData存储的是二进制数据,屏蔽了数据之间的差异,文本、音频、图像等数据都可用NSData来存储3.1、 NSData的用法3.1.1、 NSString与NSData互相转换NSData-> NSString NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUT...

2018-03-18 17:29:54 119

原创 NSFileManager 文件管理

NSFileManager创建一个文件并写入数据- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;从一个文件中读取数据 - (NSData *)contentsAtPath:(NSString *)path;scrPath路径上的文件移动到dstPath...

2018-03-18 17:25:48 187

原创 沙盒

** 前言:**处于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如在用户授权情况下访问通讯录,相册等),这个规则展示了iOS系统的封闭性。在开发中常常需要数据存储的功能,比如存取文件,归档解档等。一、沙盒目录结构每个APP的沙盒下面都有相似目录结构,如图(苹果官方文档):NSString *path = NSHomeDirectory();上面的代码得到...

2018-03-17 15:17:23 380

转载 RunTime

楔子Runtime是什么?见名知意,其概念无非就是“因为 Objective-C 是一门动态语言,所以它需要一个运行时系统……这就是 Runtime 系统”云云。对博主这种菜鸟而言,Runtime 在实际开发中,其实就是一组C语言的函数。胡适说:“多研究些问题,少谈些主义”,云山雾罩的概念听多了总是容易头晕,接下来我们直接从代码入手学习 Runtime。1、由objc_msgSend说开去Obje...

2018-03-14 19:14:03 137

转载 MVVM

MVVM分别指什么Model-数据层ViewController/View-展示层ViewModel- 数据模型MVVM与MVC的不同首先我们简化一下MVC的架构模式图:MVC.png在这里,Controller需要做太多得事情,表示逻辑、业务逻辑,所以代码量非常的大。而MVVM:MVVM.png比如我们有一个需求:一个页面,需要判断用户是否手动设置了用户名。如果设置了,正常显示用户名;如果没有设...

2018-03-14 17:30:31 177

原创 isKindOfClass和isMemberOfClass

结果表明isSubclassOfClass和isKindOfClass的作用基本上是一致都是用来判断一个对象或一个类是否为某个类或者某个类的子类.isMemberOfClass 有所不同,只有当类型完全匹配的时候才会返回YES。...

2018-03-12 16:20:54 118

转载 setValuesForKeysWithDictionary

前言在学习解析数据的时候,我们经常是这么写的:PersonModel.h文件中 @property (nonatomic,copy)NSString *name; @property (nonatomic,copy)NSString *sex; @property (nonatomic,copy)NSString *age;字典: NSDictionary *dic...

2018-03-12 15:40:32 181

原创 工厂模式

所谓的工厂模式就是:先设置一个基类作为工厂,然后将其子类继承基类分成不同的具体产品类。(有点像多肽的味道)。1.概念描述工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模...

2018-03-12 15:27:59 117

原创 单例

#import <Foundation/Foundation.h>@interface DemoObj : NSObject// 共享实例,便于其他类访问+ (instancetype)sharedDemoObj;@end#import "DemoObj.h"@implementation DemoObjstatic DemoObj *instance;/** 1. 重写allocWi...

2018-03-12 14:46:38 251

转载 线程

目的本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述。多线程的基本概念线程的状态与生命周期多线程的四种解决方案:pthread,NSThread,GCD,NSOperation线程安全问题NSThread的使用GCD的理解与使用NSOperation的理解与使用Demo在这里:WHMultiThreadDemoDemo的运行gif图如下:一、多线程的基本概念进程...

2018-03-12 14:36:01 127

原创 UIViewControllerr的生命周期从View层次看

视图层次和根视图每个视图控制器都维护一个视图层次(view hierarchy)。因为每个视图都有自己的子视图,这个视图层次其实也可以理解为一棵树状的数据结构。而树的根节点,也就是根视图(root view),在UIViewController中以view属性。它可以被看做是其他所有子视图的容器。视图的加载方式UIViewController采用懒加载的方式,也就是说第一次访问到view属性时才会...

2018-03-11 16:24:01 148

原创 UIViewControllerr的生命周期

ViewController的生命周期中各方法执行流程如下:init—>loadView—>viewDidLoad—>viewWillApper—>viewWillLayoutSubviews->viewDidLayoutSubviews ->viewDidApper—>viewWillDisapper—>viewDidDisapper—&g...

2018-03-11 15:03:48 121

原创 Application的生命周期和调用

 iOS程序的启动执行顺序UIApplication对象用户与iOS设备交互时产生的事件(Multitouch Events,Motion Event,Remote Control Event)交由UIApplication对象来分发给control objects(UIControl)对应的target objects来处理并且管理整个事件循环,而一些关于app运行时重要事件委托给app del...

2018-03-11 13:37:34 1168

原创 Block块

在iOS4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调。对比函数的优势:block的代码是内联的,效率高于函数调用block对于外部变量默认是只读属性block被Objective-C看成是对象处理认识blockBlock变量的声明Block变量的声明格式为: 返回值类型(^Block名字)(参数列表);// 声明一个无返回值,参数为...

2018-03-10 22:51:47 133

原创 通知

场景:一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息。特点:一对多发布消息;功能:既可传值又可传对象注意:        1. 使用后要在delloc中释放;        2. 在传字典的时候需注意,字典中不能定义变量;        3.  addNotification  要放在 PostNotifacation 提前申明;具体用法:   ...

2018-03-10 16:10:39 109

原创 代理设计模式

场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。特点:只对第一次设置代理对象有效;只能一对一进行类传值;功能:即可传值,又可传对象用法展示://ViewControllerB.h//第一步:创建协议和声明实现的方法@protocol VcBDelegate <NSObject>- (void)sendValue:(NSString *)value; ...

2018-03-10 15:36:50 133

原创 MVC

MVC是一种软件架构模式;分为:模型Model、视图View以及控制器Controller。作用:实现一种动态的程序设计,简化后续对软件系统的修改和扩展,并使得程序的某一部分的复用成为可能。看图:数据Model: 负责封装数据、存储和处理数据运算等工作视图View: 负责数据展示、监听用户触摸等工作控制器Controller: 负责业务逻辑、事件响应、数据加工等工作。规则:Model和View永远...

2018-03-09 23:08:33 199

原创 Category(类别)

这是Objective-C语言的一个特性,可以在不改变类名和原来类的实现的前提下,实现对类的方法扩展。一. 如何创建类别二. Category的作用(1)扩展  方法 和 “类” 的方法在.h文件中的方法/* 从十六进制字符串获取颜色 */+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;/** 将lab...

2018-03-09 20:51:23 3647

原创 数据-模型

此处讲解的主要是对数据进行加工处理成数据模型的过程。 代码://model.h中//将数组中的字典遍历出来,传到数组模型中去for (NSDictionary *dict in dictArray) { // 通过遍历把JSOn获得基本数据封装成数据对象;(调用3) XMGShop *shop = [XMGShop shopWithDict:d...

2018-03-09 17:26:32 130

原创 高内聚低耦合

软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。(一) 耦合耦合度是指模块之间联系的紧密程度。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。(二)内聚是一个模块内部各成分之间相关联程度的度量。(三)举例例如长途货运车,把车头和车身分别想象成两个不同功能的模块。车头的发动机负责驱动,车身负责装载货物。耦合:只要车头...

2018-03-09 15:05:18 214

原创 KVC 和KVO

1)KVC概念    Key-Value Coding,即键值编码。它是一种不通过存取方法,而通过属性名称字符串间接访问属性的机制。  1.  赋值方法: - (void)setValue:(id)value forKey:(NSString *)key; 2.获取属性的方法: - (id)valueForKey:(NSString *)key; 3.通过path获取多层级的属性,比如:stude...

2018-03-08 22:25:08 217

原创 枚举

枚举是C语言中的一种基本数据类型,是一个"被命名的整型常量"的集合,它不参与内存的占用和释放,我们在开发中使用枚举的目的只有一个,那就是为了增加代码的可读性;举个例子,我们想要在开发中根据四季的变化做不同的操作,我们首先想到的可能会是定义一个int型变量,通过为该变量赋不同的值来表示四季(e.g. 1为春天,2为夏天,3为秋天,4为冬天).但是,对于阅读该份代码的人来讲,他们并不能在短时间内就明白...

2018-03-03 19:03:06 179

转载 cocoapods

             看一遍就会的CocoaPods的安装和使用教程

2018-03-03 18:45:48 161

转载 DEBUG模式,RELEASE模式

DEBUG:  调试RELEASE:发布这个来自于Xcode的默认设置,我们可以取消DEBUG模式,开启RELEASE发布模式,如下面的截图所示.  选择Product->Scheme->Edit Scheme  如何确定项目是处于Debug模式还是Release模式下?首先确定一下项目的Build Settings是否已经设置过宏定义DEBUG,如果已经设置过,在Preprocess...

2018-03-01 18:17:03 248

转载 pch文件

文章环境:Xcode 8.11.创建pch文件Commend + N -> 找到 PCH File ,保存到一个合适的地方2.修改Targets 按下图,找到Precompile Prefix Header改为Yes; 再填写正确的Prefix Header路径,一种是自己填,第二种可以这样写 $(SRCROOT)/HelloWorld/PrefixHeader.pchwenjian...

2018-03-01 17:55:02 292

原创 宏定义

宏关键字:#define分为两类:1)对象宏。(很简单,起替代作用)例子:#define M_PI 3.14159265358979323846264338327950288double r = 10.0;double circlePerimeter = 2 * M_PI * r;// => double circlePerimeter = 2 * 3.14159265...

2018-03-01 17:28:29 79

原创 #import #include @class

#import 是#include 升级版,他可以解决重复导入的问题,他会做一次判断,如果已经导入一次就不导入了,自动防止文件重复包含;#import <>  是用来包含系统的头文件的;#import ""  是用来包含自己项目中的头文件;区别:import<> 先在系统中查找文件,然后在查找目录文件其他文件;         #import "" 先在目录文件中查找文件,...

2018-03-01 15:33:32 120

原创 变量

@interface MyViewController :UIViewControlle{UIButton *yourButton;int count;id data;}@property (nonatomic, strong) UIButton *myButton;@end1.成员变量在{   } 中所声明的变量都为成员变量。 所以yourButton、count、data都是成员变量。好处:成...

2018-03-01 15:10:54 114

Git(2.16.2)最新安装(包涵安装说明)

Git作为软件项目的管理器想必都知道它的强大,今天我抽时间整理了一下最新版本的Git安装文件,其中包含详细的安装过程文件,方便于人方便自己。

2018-03-24

精通iOS开发第七版实例源码(包含第六版pdf)

资源详尽,官网下载,下载中包含Swif代码示例和图片资源,同时包括精通iOS开发(第六版)PDF,为了以后道友们学习特提供

2018-01-18

空空如也

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

TA关注的人

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