自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 作为一个产品应该做的要求

PD不画原型当然可以,只要你能把业务逻辑、交互逻辑讲的明白。现实中我看到太多PD,既不懂运营,又不懂开发,更不懂设计。看了一本人人都是产品经理的书就开始步入产品生涯。沟通中又不注意倾听和解答,常常一个问题有多几个人问就不耐烦。这样的PD你指望有了交互设计师就能解决问题?还是出于一个减轻你本身应负责任的角度去甩包袱?好的PD,运营拿不出想法的,和他们一起配合去想,运营拿不出目标的,逼着他们去

2016-12-01 17:07:08 401

原创 ios coredata的用法和利弊

第一部分coredata的用法先建立一个使用use coredata的工程,在。xcdatamodeld文件中建立表格并为表格添加属性 为表格添加关系,下一步生成表格model其中生成的model:User和Department里面的属性用的是@dynamic@property有两个对应

2016-08-28 19:37:30 626

原创 各种第三方框架,工具(精华)

一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/jdg/MBProgressHUD3:XML/HTML解析地址:https://github.com/topfunky/hpple4:有文字

2016-08-21 16:03:39 1319

原创 8行代码教你搞定导航控制器全屏滑动返回效果!

一、自定义导航控制器目的:以后需要使用全屏滑动返回功能,就使用自己定义的导航控制器。二、分析导航控制器侧滑功能效果:导航控制器默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能。系统自带的侧滑效果:侧滑.gif分析:1.导航控制器的view自带了滑动手势,只不过手势的触发范围只能在左边。2.当用户在界面左边拖动,就会触发滑动手势方法,并且有滑动

2016-08-19 15:15:58 477

原创 iOS界面布局之四——使用第三方库Masonry进行autolayout布局

iOS界面布局之四——使用第三方库Masonry进行autolayout布局一、引言        在前面博客,我们讨论了使用iOS原生的框架代码来进行autolayout布局。在使用中,我们会发现,无论是代码量还是结构的清晰度,都十分不能让我们满意,在storyBoard中只需要几条线就可以搞定的事情,用代码缺要写冗余的一大堆。并且有些时候,故事版并不能解决所有问题,某些控件

2016-08-19 09:38:00 357

原创 Mac上更新Ruby,安装cocoapods详细教程

Mac上更新Ruby,安装cocoapods详细教程简介有时候在Mac上安装cocoapods时会出现如下错误:ERROR: Error installing cocoapods: activesupport requires Ruby version >= 2.2.2.这就说明你的Ruby环境需要升级更新了,在此我以mac OS 10.11 下更新ruby方法为例

2016-08-16 09:05:25 1440

原创 iOS 中三种定时器的用法NSTimer、CADisplayLink、GCD

一、NSTimer1. 创建方法NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(action:) userInfo:nil repeats:NO];TimerInterval : 执行之前等待的时间。比如设置成1.0,就代表1

2016-08-16 09:01:37 315

原创 iOS 页面间几种传值方式(属性,代理,block,单例,通知)

第二个视图控制器如何获取第一个视图控制器的部分信息例如 :第二个界面中的lable显示第一个界面textField中的文本这就需要用到属性传值、block传值那么第一个视图控制器如何获的第二个视图控制器的部分信息例如:第一个界面中的lable显示第二个界面textField中的文本这就需要使用代理传值页面间传值有八大传值方式,下面我们就简单介绍下页面

2016-08-13 14:28:52 269

原创 iOS中的两种主要架构及其优缺点

凡是程序的开发者,应该对程序的架构都不陌生。一个程序的架构的好坏对这个程序有着非常重要的作用。今天我们来看一下iOS开发中用要的两种主流的程序架构。这个过程中我们主要以例子的形式展开。  我们来看第一种架构:如下图所示:           这种程序的架构主要原理是创建了一个导航控制器来控制页面之间的切换。这种架构一般把主界面作为导航控制器的根视图控制器。在上图所求的程序架构中,主界面

2016-08-11 19:58:05 1649

原创 strong 和 copy关键字的区别

内存管理1.什么是ARC?ARC是automatic reference counting自动引用计数,在程序编译时自动加入retain/release。在对象被创建时retain count+1,在对象被release时count-1,当count=0时,销毁对象。程序中加入autoreleasepool对象会由系统自动加上autorelease方法,如果该对象引用计数为0,则销

2016-08-11 19:29:04 1326

原创 NSURLSession和NSURLConnection 的区别

AFNetworking是日常开发中最常用的网络框架,现在我们使用的版本是3.0版,3.0与2.0版最大的区别就是,AFNetworking 2.0使用NSURLConnection的基础API ,而3.0是完全基于NSURLSession的API,已经抛弃了NSURLConnection。而NSURLSession可以看作是是NSURLConnection 的替代者,在2013年苹果全球开发者大

2016-08-06 13:25:18 360

原创 iOS屏幕适配教程(手动布局和自动布局)

iOS屏幕适配教程  1.通过frame进行适配在iOS早期开发,都是使用frame属性进行屏幕适配,需要多套代码,非常麻烦。//使用frame添加控件view,并设置属性,但是只能使用指定屏幕尺寸 [super didReceiveMemoryWarning]; UIView *greenView=[[UIView alloc]init]; g

2016-08-06 12:59:39 974

原创 iOS 消息推送原理及实现Demo

一、消息推送原理:在实现消息推送之前先提及几个于推送相关概念,如下图1-1:1、Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]);2、APNS:Apple Push Notification Service[苹果消息推送服务器];3、iPho

2016-08-05 11:29:06 1234

原创 iOS开发中AFNetworking的基本使用

AFNetworking是一个非常方便的网络请求库,可以轻松实现各种网络请求,比如经常使用的GET请求、POST请求,以及上传多张图片等,下面介绍一下基本的使用方法。首先下载AFNetworking 然后在需要使用的类中,导入如下2个头文件: #import "AFNetworking.h"//主要用于网络请求方法#import "UIKit+AFNetworking.h"/

2016-08-05 11:18:12 503

原创 项目中疑难Crash问题

iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash地址了。对于线上App运行时的Crash收集也有很多好用的第三方工具,具有代表性的就是Crashlytics,通过打包时上传dSYM文件,收集到的Crash就可以解析为可读的格式了。  尽管Crashlytics功能已经很

2016-08-04 09:57:38 578

原创 GIT和SVN之间的区别及基本操作对比

1. GIT和SVN之间的五个基本区别1)GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。如果你能理解这个概念,那么你就已经上手一半了。需要做一点声明,GIT并不是目前第一个或唯一的分布式版本控制系统。还有一些系统,例如Bitkeeper, Mercurial等,也是运行在分布式模式上的。但GIT在这方面做的更好,而且有更多

2016-08-01 08:50:43 436

原创 Swift与OC语言中语法的一些区别

一、元组1.1、元组(tuples)把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相同类型。下面这个例子中,(404, "Not Found")是一个

2016-07-31 09:07:44 353

原创 响应者链条中事件传递的过程

1、如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件。2、在以下几种情况下,控件是不能接收触摸事件  1.不接收用户交换  userInteractionEnable= NO;  2.隐藏 hiden = YES;  3.透明 alpha = 0.0 ~ 0.01;提示:UIImageView的userInteractionEnable默认为NO

2016-07-29 01:33:32 667

原创 iOS开发 -文件下载(下载功能的封装)

一、简单说明在前面几篇文章介绍下载代码的基础上,此文分析对下载功能进行封装。通过之前的代码,我们发现仅仅是下载一个文件就需要写很长的代码,那么如果要下载多个文件,就需要写多份代码。在这里,我们把下载一个文件的代码进行封装。控制器只需要知道,下载哪个文件,下载到哪个路径就可以了。在对下载的功能进行封装后,添加一个文件下载器,一个文件下载器只下载一个文件,封装后如果要下载多个文

2016-07-26 23:42:14 2763

原创 浅谈iOS中MVVM的架构设计与团队协作(很重要)

由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人了。说到架构设计和团队协作,这个对App的开发还是比较重要的。即使作为一个专业的搬砖者,前提是你这砖搬完放在哪?不只是Cod

2016-07-26 01:54:09 441

原创 iOS网络请求工具oc版,swift版基于AFNetworking的简单封装

1.为什么要封装对于AFNetworking的使用,相信大多数的公司都会用到,毕竟开源框架,安全高效.为了提高效率和代码的可维护性,我们就要二次封装AFN.2,以前遇到问题一个老项目,需要进行IPV6的迁移(虽然老版本的AFN也支持IPV6),但是方法变了,之前没有封装AFN,项目中用到AFN请求的地方有很多,接口上千,那么AFN出现的地方就上千个.更新AFN后,不支持老方法了,需要用

2016-07-25 18:07:52 762

原创 lazy(懒加载)属性解析

关联映射文件中标签中的lazy(懒加载)属性 Lazy(懒加载):只有在正真使用该对象时,才会创建这个对象Hibernate中的lazy(懒加载):只有我们在正真使用时,它才会发出SQL语句,给我们去查询,如果不使用对象则不会发SQL语句进行查询。Hibernate中lazy(懒加载)的实现:采用了第三方组件的库,这个库叫cglib.jar(比较流行),这个库对我们

2016-07-21 21:56:24 4249

原创 KVC构造函数

1.对象的创造过程在swift中必选属性,初始化是分段的,先初始化本类的必选属性,然后再调用super.init初始化父类的必选属性,super.init就是整个构造函数的结束2.KVC给对象初始化kvc原理:在程序运行时给对象发送setvalue: forkey的消息kvc机制:1..setvaluesForKeysWithDictionary( dict )遍历字典中的键值

2016-07-21 00:53:49 577

原创 Swift 懒加载(lazy) 和 Objective-C 懒加载的区别

在程序设计中,我们经常会使用 懒加载 ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都会这样写Objective-C- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ ret

2016-07-20 02:03:23 347

原创 Swift使用AFNetwroking访问网络数据

AFNetworking 是 iOS 一个使用很方便的第三方网络开发框架,它可以很轻松的从一个URL地址内获取JSON数据。在使用它时我用到包管理器Cocoapods 不懂的请移步:Cocoapods安装:http://www.cnblogs.com/foxting/p/4520758.htmlRUBY安装:http://www.cnblogs.com/foxting/p/

2016-07-19 00:52:43 427

原创 解析set,get方法

目的:为了能让类的成员变量正确的被外接访问,我们需要设置set和get方法。      用property就会自动生成get,set方法的过程中处理好retain,copy,release的关系,而且还可以在main中调用时使用          java习惯的点赋值,点调用,何乐而不为呢。    分析    1. set 函数   

2016-07-18 16:53:13 841

原创 Swift的循环引用以weak

什么是循环引用Swift 是自动管理内存的,这也就是说,我们不再需要操心内存的申请和分配。当我们通过初始化创建一个对象时,Swift 会替我们管理和分配内存。而释放的原则遵循了自动引用计数 (ARC) 的规则:当一个对象没有引用的时候,其内存将会被自动回收。这套机制从很大程度上简化了我们的编码,我们只需要保证在合适的时候将引用置空 (比如超过作用域,或者手动设为 nil 等),就可以确保内存使

2016-07-18 01:22:50 396

原创 Swift基本语法(5)-集合

集合   文章原创。未经允许不得转载!写的可以给个赞,博主会发出更多关于Swift的语法和使用!数组数组使用 [] 定义,这一点与 OC 相同//: [Int]let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]遍历let array1 = ["老王", "老李"]// 通过下标遍历数组for i in 0..co

2016-07-14 22:24:20 260

原创 Swift基本语法(4)-字符串

字符串文章原创。未经允许不得转载!写的可以给个赞,博主会发出更多关于Swift的语法和使用!在 Swift 中绝大多数的情况下,推荐使用 String 类型String 是一个结构体,性能更高String 目前具有了绝大多数 NSString 的功能String 支持直接遍历NSString 是一个 OC 对象,性能略差Swift 提供了 String 和 

2016-07-14 22:22:11 313

原创 Swift基本语法(3)-控制流

文章原创。未经允许不得转载!写的可以给个赞,博主会发出更多关于Swift的语法和使用控制流ifSwift 中没有 C 语言中的非零即真概念在逻辑判断时必须显示地指明具体的判断条件 true / falseif 语句条件的 () 可以省略但是 {} 不能省略let num = 200if num 10 { print("比 10 小")} else if

2016-07-14 22:17:43 391

原创 Swift基本语法(2)-Optional

Optional 可选项                       文章原创。未经允许不得转载!写的可以给个赞,博主会发出更多关于Swift的语法和使用!Optional 是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil定义变量时,在类型后面添加一个 ?,表示该变量是可选的变量

2016-07-14 22:16:59 306

原创 Swift基本语法(1)-变量和常量

变量和常量定义let 定义常量,一经赋值不允许再修改var 定义变量,赋值之后仍然可以修改// 定义常量 let / 变量 var// 格式: let/var 变量名: 类型 = 值// 提示: Swift 提供了自动推导,如果使用默认的数据类型,`: 类型` 可以省略// 格式: let/var 变量名 = 值,变量类型会根据右侧的结果`自动推导`// 定义常量并且直接

2016-07-14 22:11:13 321

原创 自动释放池详解

自动释放池在 mrc 的代码中,没有 weak,只有 assignassign 修饰符号,对对象不做任何操作,只是简单的记录地址weak 是 ARC 专有的,如果对象没有其他任何对象做强引用,会被立即释放!weak 的效率非常差!assign 会记录住地址,对象释放后,地址仍然保留,在 MRC 开发中,野指针错误非常频繁weak 安全性很好!一旦没有强引用,自动将地址设置为 nil

2016-07-13 19:50:22 523

原创 UITableView的性能优化

UITableView的性能优化? 滑动的时候有种卡的感觉是为什么?怎么解决?       然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。 实际上针对性地优化一下就可以解决tableView滑动的时候卡顿的问题, 在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、

2016-07-13 19:44:47 347

原创 UIWebView详解

UIWebView的三种加载方式和其代理API 提供了三种方法:1.- (void)loadRequest:(NSURLRequest *)request; //加载HTML链接地址2.- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; //加载HTML代码3.- (void)loadData:(

2016-07-12 14:31:23 587

原创 内存管理基本原理

Object—C内存管理基本原理Objective-C的内存管理机制与.Net/Java那种全自动的垃圾回收机制是不同的,它本质上还是C语言中的手动管理方式,只不过稍微加了一些自动方法。1           Objective-C的对象生成于堆之上,生成之后,需要一个指针来指向它。ClassA *obj1 = [[ClassA alloc] init]; 

2016-07-12 14:24:57 316

空空如也

空空如也

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

TA关注的人

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