自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 iOS iPhoneX 适配

1.导航栏高度 88 非非IPoneX手机为642.状态栏高度44 非IPoneX手机为203.tabar高度83 非IPhoneX手机为49  如下图所示;问题:push时tabbar向上移动导致一块小黑屏幕简单描述一下,这就是一个苹果官方开发人员的一个打脸bug,直接上代码 如下;在你的基类导航控制器跳转代理方法中加上这个方法即可;- (void)pushViewC...

2018-09-20 09:13:41 407

转载 swift 文本自适应高度

跳转

2018-06-28 15:44:52 561

原创 无证书真机测试

1. 参考网站:Xcode9 无证书真机调试ios 开发 app id 冲突2. 参考建议你可能会遇到下面这一步:这里显示 app id 冲突,我觉得是已经被其他开发者使用过了 bundle identifier, 这时候你就起一个独一无二的不就可以了嘛,对,就是这么简单。另外,你还需要到 手机- 设置 - 通用 - 设备管理 - 点击信任。...

2018-05-09 16:23:45 346

原创 自定义Cell伸缩

                                              思路:1. 点击黄色的Button我们其实想要得到是Cell所在的行数,从而刷表,从新调用表的 heightForRowAtindexPath 代理,将所选中的cell的高进行改变,从而得到我们所看到的伸展cell。2.难点:  (1).在cell中自定义的button怎么获取cell的indexPath ...

2018-05-04 21:33:09 259

翻译 调用init?(coder decoder: NSCoder)

当我们重写类的时候经常提示要添加代码: required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }这个叫必要初始化器,这种情况一般会出现在继承了遵守NSCoding protocol的类,比如UIView系列的类、UIViewControlle...

2018-04-21 20:04:43 2409

原创 有毒控件(UICollectionViewController)

一. 对于StoryBord 添加的UICollectionViewController真的有毒。  1. 毒刺:下面语句请不要加,否则运行出来视图不显示;[self.collectionView registerClass:[MainCollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];2. 毒刺: story...

2018-04-15 19:57:44 285

原创 关于加载控制器的三种方式(加载xib ,加载Storyboard, 跳转单独Storyboard的控制器 )

一  加载xibYYViewController *YYVC=[[YYViewController alloc]initWithNibName:@"YYViewController" bundle:nil]; [self.navigationController pushViewController:YYVC animated:YES];二  跳转有连线的Storyboard的控制器   在sto...

2018-04-15 13:46:47 563

原创 Cornerstone (SVN)

简书参考一、安装CornerStone是收费,如果是公司需要使用到,建议让公司购买软件使用版权,支持正版,当然网上也是有破解版本的。破解版,提取密码(ggmk),如果下载成功需要输入密码(www.ifunmac.com)。二、配置SVN首先,打开Cornerstone,点击"+"号,添加一个仓库,选中HTTP Server。例如:https://[email protected]:443/s...

2018-04-10 16:01:30 341

原创 快照

在iOS7 以前, 获取一个UIView的快照有以下步骤: 首先创建一个UIGraphics的图像上下文,然后将视图的layer渲染到该上下文中,从而取得一个图像,最后关闭图像上下文,并将图像显示在UIImageView中。现在我们只需要一行代码就可以完成上述步骤了:[view snapshotViewAfterScreenUpdates:NO];这个方法制作了一个UIView的副本,如果我们希望...

2018-04-03 22:50:27 201

原创 IOS 加载控制器的几种方法顺序

一.对于ViewController的加载Init加载ViewController:代码创建的ViewController:ViewControllerWith *vc = [[ViewControllerWith alloc]init];在这个加载过程中 相关方法调用顺序是:initinitWithNibName:bundle:loadViewviewDidLoadXIB加载ViewContr...

2018-04-01 17:43:39 714

转载 内存泄漏的情况

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

2018-03-28 19:37:38 175

转载 RunTime

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

2018-03-28 19:21:11 266

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

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

2018-03-26 21:18:46 155

转载 GitHub 远程仓库创建

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

2018-03-26 21:12:57 220

原创 归档(三种状况)

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

2018-03-18 20:30:57 262

原创 偏好设置

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

2018-03-18 17:37:43 599

原创 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 112

原创 NSFileManager 文件管理

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

2018-03-18 17:25:48 177

原创 沙盒

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

2018-03-17 15:17:23 359

转载 RunTime

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

2018-03-14 19:14:03 127

转载 MVVM

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

2018-03-14 17:30:31 162

原创 isKindOfClass和isMemberOfClass

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

2018-03-12 16:20:54 107

转载 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 171

原创 工厂模式

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

2018-03-12 15:27:59 107

原创 单例

#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 241

转载 线程

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

2018-03-12 14:36:01 122

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

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

2018-03-11 16:24:01 132

原创 UIViewControllerr的生命周期

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

2018-03-11 15:03:48 109

原创 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 1151

原创 Block块

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

2018-03-10 22:51:47 118

原创 通知

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

2018-03-10 16:10:39 101

原创 代理设计模式

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

2018-03-10 15:36:50 121

原创 MVC

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

2018-03-09 23:08:33 137

原创 Category(类别)

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

2018-03-09 20:51:23 3593

原创 数据-模型

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

2018-03-09 17:26:32 117

原创 高内聚低耦合

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

2018-03-09 15:05:18 190

原创 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 206

原创 枚举

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

2018-03-03 19:03:06 169

转载 cocoapods

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

2018-03-03 18:45:48 147

转载 DEBUG模式,RELEASE模式

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

2018-03-01 18:17:03 232

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

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

2018-03-24

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

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

2018-01-18

空空如也

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

TA关注的人

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