自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MinggeQingchun的博客

记录就是一种积累,积累就是一种提高,提高就是一种成长!

  • 博客(56)
  • 资源 (7)
  • 收藏
  • 关注

转载 iOS Crash 捕获及堆栈符号化思路剖析

最近在做 Crash 分析方面的工作,发现 iOS 的崩溃捕获和堆栈符号化虽然已经有很多资料可以参考,但是没有比较完善的成套解决方案,导致操作起来还是要踩很多坑,耽误了很多时间。所以想做一个总结,阐述 Crash 收集分析的整体思路和出坑指南,具体细节实现会给出相关参考资料。有了思路,实现也就 So Easy 啦。崩溃捕获对于崩溃捕获,以前在 移动端监控体系之技术原理剖析 中详细阐述过

2017-08-31 15:40:35 509

原创 iOS七牛云上传图片error=incorrect region, please use up-z2.qiniu.com

在上传图片到七牛云服务器上报错如下:info ===== <QNResponseInfo= id: CB441DB1-B50D-472A-8DAB-B07700E102C5, ver: 7.1.6, status: 400, requestId:XXXX, XXXX, xlog: RA:122.224.95.105:80;UP/400;NUPROXY:28/400, xvia: (nu

2017-08-28 10:24:11 9200 1

原创 iOS七牛云上传图片

以前上传图片都是通过form表单提交上传文件类型数据,这次的后台有点逗逼用起了第三方,我也是呵呵了,因此找了一下文档,第三方SDK集成我就不多说了,毕竟都是按照人家的步骤来就行了。因此,首先登录七牛云,然后找到官方SDK,找到Objective-C文档,点击一下就可以进到文档界面,如下: 一个是SDK的下载地址,一个是七牛云的demo(跳转到GitHub界面下载demo),文档中对

2017-08-28 10:14:59 1798

原创 iOS设置导航栏渐变颜色

Demo下载地址之前也写过一篇关于导航渐变的博客,链接地址如下:http://blog.csdn.net/minggeqingchun/article/details/52571810但是这篇博客所写的文章和目前这篇原理差不多,都是在滑动时,根据滑动的Y值改变去改变导航颜色的alpha值,但是测试多次发现还是偶尔会浮现一些bug出来,因此优化了一下直接给UINavigationBa

2017-08-19 10:44:08 2251

原创 iMac显示以太网已连接,但是打不开网页

1、首先可以使用ping检查一下网络情况ping 192.168.1.1           检查内网ping www.baidu.com     检查外网2、网络已连接说明网络是没问题的,设置上有问题打开系统偏好设置---->网络可以手动设置一下路由器和DNS服务器的地址 3、设置DNS服务器没问题,依然打不开网页,进入系统偏好设置---->共享,关掉互联网共享即

2017-08-18 11:20:16 17893 2

原创 iOS设置富文本行间距、字间距

我们在展示文字信息时,经常会碰到换行自适应高度的文本,这时我们会发现换行之后,文本之间的行间距依然很小,导致看起来很拥挤,影响美观。因此以下代码就是来解决这些问题,新建一个NSString的类别,贴出如下代码:1、调整行间距,字间距/* * 设置行间距和字间距 * * @param string 字符串 * @param lineSpace 行间距 * @param

2017-08-17 15:54:17 13512

转载 iOS中的Attribute-富文本文字

NSFontAttributeName(字体)该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。NSParagraphStyleAttributeName(段落)该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多个属性。如果不指定该属性,则默认为 N

2017-08-17 15:48:00 653

转载 内存溢出和内存泄漏的区别

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导

2017-08-16 15:07:21 318

转载 iOS 打包ipa 发布到蒲公英给测试人员用

iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上?对于自己来说,我们只需要真机调试就能安装到自己手机上。但是如果我们想给更多的人测试呢,当然你也可以拿他们手机一个一个的安装,这样很费力。所以我们可以打包一个ipa文件,然后这ipa可以安装到已注册的设备上。证书之类的就不在这里介绍了,不清楚的可以看上篇 http://www.jianshu.com/p/5aaba235

2017-08-15 11:10:32 5719 1

转载 iOS上传应用到蒲公英分发测试

一. 获取IOS设备的UDID       每一个IOS设备都有一个UDID,相当于一个身份标识。那么我们怎么去获取这个UDID呢?        蒲公英网站上也给出了最简单的获取方法:点击这个链接:https://www.pgyer.com/udid。或者直接看下图:这个图片就是从这个网页上截取的。拿到的UDID是一长串字母与数字组成的字符串。二. 添加UUID到开发

2017-08-15 11:01:00 4137 2

原创 iOS提上传包报错:No suitable application records were found. Verify your bundle identifier 'xx' is correct

iOS提上传包报错:No suitable application records were found. Verify your bundle identifier 'xx' is correct解决办法:1、检查多个开发者账号提交时是否选择错了2、在iTunes Connect中是否建立了Bundle Id对应的App

2017-08-15 09:13:26 6454

转载 用C语言封装OC对象(耐心阅读,非常重要)

本文的主要内容来自这里前言做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象是怎么封装的?接下来我们就使用C语言来一部一部的实现这个封装。Object对象首先我们先封装一个Object对象,我们来分析一下:如果使用C来封装对象,我们就要用到结构体每一个Object都有一个计数器,

2017-08-15 09:13:15 443

转载 iOS实录5:iOS中本地图片的缩放、裁剪和压缩

导语:图片的缩放、裁剪和压缩等处理,总是在不经意间遇到,如果在考虑不周全的情况下,写出的图片处理代码一不小心就埋下了坑(性能损耗或达不到理想效果)。图片处理的目标1、 iOS性能优化中希望UIImageView设置的图片不要超出UIImageView的大小,这时候最好缩放处理一下。2、 iOS性能优化中常提到设置圆角会引发离屏渲染,较好的方案一般是自己裁剪出圆角图片。3、图

2017-08-15 09:12:57 1542

转载 iOS第三方库汇总

开源项目iOSBlogAndToolsiOS开发优秀博客和软件推荐CodeHubbrowse and maintain your GitHub repositories on any iOS device!Open-Source iOS Apps开源iOS apps列表弹框FFToastGitHub中最强大的iOS Notif

2017-08-15 09:12:47 863

原创 HTTP请求错误码表

所有 HTTP 状态代码及其定义。  代码  指示  2xx  成功  200  正常;请求已完成。  201  正常;紧接 POST 命令。  202  正常;已接受用于处理,但处理尚未完成。  203  正常;部分信息 — 返回的信息只是一部分。  204  正常;无响应 — 已接收请求,但不存在要回送的信息。  3xx  重定向  301  已移动 —

2017-08-15 09:12:28 640

转载 iOS持久化Cookies与清空(可以用来保存登录状态和退出登录)

//本地拿到存储的cookiesNSString *plistPath = [[NSBundle mainBundle] pathForResource:@"cookiesInfo" ofType:@"plist"];NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]...

2017-08-14 09:26:59 2602

转载 堆与栈的区别

堆和栈的区别 (转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可

2017-08-14 09:26:23 830

转载 如何生成密钥,私钥,签名

我们平时都听过非对称加密,公钥和私钥,签名验证,但这些证书都是怎么得到的呢?本篇文章会解答这些问题。背景介绍加密的一个简单但又实用的任务就是发送加密电子邮件。多年来,为电子邮件进行加密的标准一直是PGP(Pretty Good Privacy)。程序员Phil Zimmermann特别为电子邮件的保密编写的PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具

2017-08-14 09:25:58 15206 1

转载 Alamofire源码解读系列(十二)之时间轴(Timeline)

本篇带来Alamofire中关于Timeline的一些思路前言Timeline翻译后的意思是时间轴,可以表示一个事件从开始到结束的时间节点。时间轴的概念能够应用在很多地方,比如说微博的主页就是一个时间轴。Alamofire中Timeline的代码很少,非常简单。因此本篇文章中,我们不会把重点放到代码的解读上,我们通过追踪Timeline的身影,来讲讲关于代码设计方面的东东。为什

2017-08-14 09:25:33 675

转载 Alamofire源码解读系列(十一)之多表单(MultipartFormData)

本篇讲解跟上传数据相关的多表单前言我相信应该有不少的开发者不明白多表单是怎么一回事,然而事实上,多表单确实很简单。试想一下,如果有多个不同类型的文件(png/txt/mp3/pdf等等)需要上传给服务器,你打算怎么办?如果你一个一个的上传,那我无话可说,但是如果你想一次性上传,那么就要考虑服务端如何识别这些不同类型的数据呢?服务端对不同类型数据的识别解决方案就是多表单。客户端与服务

2017-08-14 09:25:23 923

转载 Alamofire源码解读系列(十)之序列化(ResponseSerialization)

本篇主要讲解Alamofire中如何把服务器返回的数据序列化前言和前边的文章不同, 在这一篇中,我想从程序的设计层次上解读ResponseSerialization这个文件。更直观的去探讨该功能是如何一步一步实现的。当然,有一个不好的地方,跟数学问题一样,我们事先知道了结果,因此这是一个已知结果推到过程的问题。在之前Alamofire的源码解读文章中,我们已经知道了:对于响应感兴趣

2017-08-14 09:25:08 550

转载 Alamofire源码解读系列(九)之响应封装(Response)

本篇主要带来Alamofire中Response的解读前言在每篇文章的前言部分,我都会把我认为的本篇最重要的内容提前讲一下。我更想同大家分享这些顶级框架在设计和编码层次究竟有哪些过人的地方?当然,这些理解也都是基于我自己的理解。难免具有局限性。当我们设计完一个Request的时候,我们肯定要处理服务器返回的响应数据。在Alamofire源码解读系列(一)之概述和使用中,我们已经讲过

2017-08-14 09:23:47 454

转载 Alamofire源码解读系列(八)之安全策略(ServerTrustPolicy)

本篇主要讲解Alamofire中安全验证代码前言作为开发人员,理解HTTPS的原理和应用算是一项基本技能。HTTPS目前来说是非常安全的,但仍然有大量的公司还在使用HTTP。其实HTTPS也并不是很贵啊。在网上可以找到大把的介绍HTTTPS的文章,在阅读ServerTrustPolicy.swfit代码前,我们先简单的讲一下HTTPS请求的过程:上边的图片已经标出了步骤,我

2017-08-14 09:23:30 778

转载 Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)

Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)本篇主要讲解iOS开发中的网络监控前言在开发中,有时候我们需要获取这些信息:手机是否联网当前网络是WiFi还是蜂窝那么我总结一下具体的使用场景有哪些?肯定有遗漏:聊天列表,需要实时监控当前的网络是不是可达的,如果不可达,则出现不能联网的提示在线视屏播放,需要

2017-08-14 09:23:12 1755

转载 Alamofire源码解读系列(六)之Task代理(TaskDelegate)

本篇介绍Task代理(TaskDelegate.swift)前言我相信可能有80%的同学使用AFNetworking或者Alamofire处理网络事件,并且这两个框架都提供了丰富的功能,我也相信很多人都做了二次封装,但事实上,这个二次封装却又异常简单或者是简陋。这篇文章的内容是Task代理,是一篇很独立的文章,大家可以通过这篇文章了解iOS中网络开发是怎么一回事。那么一条最普通的网

2017-08-14 09:22:39 853

转载 Alamofire源码解读系列(五)之结果封装(Result)

本篇讲解Result的封装前言有时候,我们会根据现实中的事物来对程序中的某个业务关系进行抽象,这句话很难理解。在Alamofire中,使用Response来描述请求后的结果。我们都知道Alamofire返回的数据可以经过特殊的处理,比如说序列化,那么我们应该如何在Response中获取到这些类型不同的数据呢?假如说序列化后的数据是data,最直接的想法就是把data设置为Any类型

2017-08-13 21:27:02 487

转载 Alamofire源码解读系列(四)之参数编码(ParameterEncoding)

本篇讲解参数编码的内容前言我们在开发中发的每一个请求都是通过URLRequest来进行封装的,可以通过一个URL生成URLRequest。那么如果我有一个参数字典,这个参数字典又是如何从客户端传递到服务器的呢?Alamofire中是这样使用的:URLEncoding 和URL相关的编码,有两种编码方式:直接拼接到URL中通过request的httpBody传值

2017-08-13 21:25:37 2061

转载 Alamofire源码解读系列(三)之通知处理(Notification)

本篇讲解swift中通知的用法前言通知作为传递事件和数据的载体,在使用中是不受限制的。由于忘记移除某个通知的监听,会造成很多潜在的问题,这些问题在测试中是很难被发现的。但这不是我们这篇文章探讨的主题。我曾见过,有的团队为了管理通知,开发了一个类似于NotificationManager的类,所有通知的添加移除都通过这个类进行管理,通过打印通知数组就能很清楚的看到添加了哪些通知,以及

2017-08-11 09:30:09 318

转载 Alamofire源码解读系列(二)之错误处理(AFError)

本篇主要讲解Alamofire中错误的处理机制前言在开发中,往往最容易被忽略的内容就是对错误的处理。有经验的开发者,能够对自己写的每行代码负责,而且非常清楚自己写的代码在什么时候会出现异常,这样就能提前做好错误处理。Alamofire的错误封装很经典,是使用swift中enum的一个典型案例。读完这篇文章,一定能让大家对swift的枚举有一个更深的理解,同时增加一些枚举的高级使用技

2017-08-11 09:29:42 1029

转载 Alamofire源码解读系列(一)之概述和使用

尽管Alamofire的github文档已经做了很详细的说明,我还是想重新梳理一遍它的各种用法,以及这些方法的一些设计思想本文依然转载自马在路上博客Alamofire源码解读系列(二)之错误处理(AFError)Alamofire源码解读系列(三)之通知处理(Notification)Alamofire源码解读系列(四)之参数编码(ParameterEncoding)

2017-08-11 09:29:32 952

转载 iOS 通俗易懂的HTTP网络

去了饿厂面试后了解到了自己计算机基础的薄弱, 非科班出身薄弱也是自然的, 说实话, 我也并不是特别想要往底层深究, 因为越底层的东西越会抽象成服务输送给大众, 就好比自来水, 一般人都不会想要去了解自来水的底层逻辑吧, 但作为开发者, 我们还是得了解下基础的网络概念.序关于HTTP与HTML的发明有个很有趣的插曲, 那就是首个万维网服务器与浏览器是在一台NeXTStep计算机上

2017-08-11 09:29:17 584

原创 iOS解读AFN查看请求头,判断响应成功、失败

AFN不管是GET、POST、PUT、DELETE请求,最终都会调用此方法 ,建立一个任务。AFHTTPSessionManager.m- (NSURLSessionDataTask *)dataTaskWithHTTPMethod:(NSString *)method URLString:(NSStri

2017-08-11 09:28:31 3538

转载 iOS开发关于oc运行时 isa指针详解

Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。1、Cocoa是什么?Cocoa是OS X和 iOS操作系统的程序的运行环境。是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。Cocoa程序可以这么说,它是由一些对象组成,而这些对象的类最后都

2017-08-11 09:28:08 520

转载 AFNetworking 3.0 源码解读 总结(干货)(下)

承接上一篇AFNetworking 3.0 源码解读 总结(干货)(上)21.网络服务类型NSURLRequestNetworkServiceType示例代码:typedef NS_ENUM(NSUInteger, NSURLRequestNetworkServiceType){ NSURLNetworkServiceTypeDefault = 0, // St

2017-08-11 09:27:11 361

转载 AFNetworking 3.0 源码解读 总结(干货)(上)

养成记笔记的习惯,对于一个软件工程师来说,我觉得很重要。记得在知乎上看到过一个问题,说是人类最大的缺点是什么?我个人觉得记忆算是一个缺点。它就像时间一样,会自己消散。前言终于写完了 AFNetworking 的源码解读。这一过程耗时数天。当我回过头又重头到尾的读了一篇,又有所收获。不禁让我想起了当初上学时的种种情景。我们应该对知识进行反复的记忆和理解。下边是我总结的 AFNetwo

2017-08-11 09:26:53 508

转载 AFNetworking 3.0 源码解读(十一)之 UIButton/UIProgressView/UIWebView + AFNetworking

AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结。前言上一篇我们总结了 UIActivityIndicatorView UIRefreshControl UIImageView 这3个控件的分类。那么这一篇就总结下剩余的3个分类:UIButton UIProgressView UIWebView 。

2017-08-11 09:26:12 384

转载 AFNetworking 3.0 源码解读(十)之 UIActivityIndicatorView/UIRefreshControl/UIImageView + AFNetworking

我们应该看到过很多类似这样的例子:某个控件拥有加载网络图片的能力。但这究竟是怎么做到的呢?看完这篇文章就明白了。前言这篇我们会介绍 AFNetworking 中的3个UIKit中的分类。UIActivityIndicatorViewUIRefreshControl UIImageView。读完本篇就能够明白控件是如何显示网络图片的。那么如果你有兴趣,可以尝试让一个控件的laye

2017-08-11 09:25:45 351

转载 AFNetworking 3.0 源码解读(九)之 AFNetworkActivityIndicatorManager

让我们的APP像艺术品一样优雅,开发工程师更像是一名匠人,不仅需要精湛的技艺,而且要有一颗匠心。前言AFNetworkActivityIndicatorManager 是对状态栏中网络激活那个小控件的管理。在平时的开发中,我们很可能忽略了它的存在。然而,实现对它的管理,让我们的APP更符合人机交互,不也是件大快人心的事儿吗。看下边这张图片就明白了:AFNetwork

2017-08-10 11:51:19 837

转载 AFNetworking 3.0 源码解读(八)之 AFImageDownloader

AFImageDownloader 这个类对写DownloadManager有很大的借鉴意义。在平时的开发中,当我们使用UIImageView加载一个网络上的图片时,其原理就是把图片下载下来,然后再赋值。这也是AFImageDownloader这个类的核心功能。前言AFImageDownloader 专门管理一组图片的下载任务。试想,如果有一个界面的功能是对图片进行处理,要求下

2017-08-10 11:50:43 633

转载 AFNetworking 3.0 源码解读(七)之 AFAutoPurgingImageCache

这篇我们就要介绍AFAutoPurgingImageCache这个类了。这个类给了我们临时管理图片内存的能力。前言假如说我们要写一个通用的网络框架,除了必备的请求数据的方法外,必须提供一个下载器来管理应用内的所有的下载事件。至于下载器能够提供的功能,在此先不做说明。但在 AFAutoPurgingImageCache 中我们能够借鉴一些东西。AFImageCache

2017-08-10 11:50:05 499

UILabel的text设置不同颜色、字体

UILabel的text设置不同颜色、字体

2016-09-19

导航栏渐变透明

导航栏渐变透明

2016-09-19

cell自适应高度

cell自适应行高

2016-09-19

Xcode的Targets多版本构建

使用Xcode的Targets进行多版本构建

2016-08-18

Xcode的Targets进行多版本构建

使用Xcode的Targets进行多版本构建

2016-08-17

使用Xcode的Targets进行多版本构建

使用Xcode的Targets进行多版本构建,使用相同的代码,却使用不同的资源文件

2016-08-17

UIlabel根据文本、字体获得label宽度;自适应宽高

UIlabel根据文本、字体获得label宽度;自适应宽高

2004-07-05

空空如也

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

TA关注的人

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