自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Build settings探究之—编译优化

Build settings探究之—编译优化前言xcode中的build settings中有很多涉及到编译设置的选项,了解这些设置,对我们代码的编译速度和安装包大小会有不小的影响,所以我最近对build settings进行了一番探究。正文要了解build settings中的各个参数,最好的渠道还是官方文档,于是我们从官方文档中来进行发掘(这里只探讨与编译相关的),我尝试了几乎所有与编...

2018-11-13 17:48:07 895

转载 iOS-MRC与ARC区别以及五大内存区

个人觉得要更加深入直观了解MRC与ARC的区别建议先从内存分析开始所以文章开始会从内存起 文章目录1.五大内存区域1.1 栈区1.2 堆区1.3 全局区1.4 常量区1.5 代码区1.6 自由存储区1.7 static静态变量1.8 extern全局变量1.9 const常量2.属性标识符2.1 @property、@synthesize、@d...

2018-08-31 16:39:54 792

转载 jenkins+xcode+蒲公英实现ipa自动化打包

原文 一、简述 公司特意配了一台mac机给测试用,并且打包发布这些功能都要在这台测试机上完成,老大特意让我去研究一下jenkins实现自动化打包,好吧,那就去看吧。百度搜一下,Mark一下简介:jenkins是一个广泛用于持续构建的可视化web工具,持续构建即各种项目的”自动化”编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:Java, c#, PHP等)的项目构建,也完全兼容

2017-08-11 16:18:02 615

转载 将iOS项目进行子工程化

在iOS项目开发中,随着项目的越来越大,工程的结构化会变差,编译的速度也会越来越慢。使用静态库或动态库的方式来构建子工程不仅可以加快项目的编译速度,从结构上,也优化了项目的组织。有两种方式来来对项目进行子工程化,可以在项目中创建子项目,也可以创建并列的项目,建立项目依赖。需要注意,无论哪种方式,你都应该尽量保证子工程不要用到主工程中的内容,如果必须这样做,你可以采用代理或其他回调编程方式来转交给主工

2017-08-11 15:47:59 1640

转载 iOS实现断点续传

文章来源:《iOS实现断点续传》网络下载是我们在项目中经常要用到的功能,如果是小文件的下载,比如图片和文字之类的,我们可以直接请求源地址,然后一次下载完毕。但是如果是下载较大的音频和视频文件,不可能一次下载完毕,用户可能下载一段时间,关闭程序,回家接着下载。这个时候,就需要实现断点续传的功能。让用户可以随时暂停下载,下次开始下载,还能接着上次的下载的进度。今天我们来看看如何自己简单的封装一个断点续传

2017-07-18 20:01:41 696

转载 iOS开发 HTTP协议详解

HTTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解不应只局限于此。千里之行,始于足下。越想走的远,基本原理就应该了解的透彻全面一些,仅仅停留在使用ASIHttpRequest或者AFNetWorking传个参数发个请求的程度上是不够的。这篇文章就是带你全方面回顾一下HTTP。通过本文你能收获哪些内容:完整HTTP请求与响应包含的必要元素HTTP不同

2017-07-17 19:44:43 1106

转载 TCP协议详解

为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。但是简单的连到一起是远远不够的,就好像语言不同的

2017-06-30 14:33:07 382

原创 iOS开发中,各个UI控件之间的继承关系

(图片来源于网络) (图片来源于网络)注:UICollectionView也是继承自UIScrollView

2017-06-15 19:42:57 767

原创 iOS转屏

iOS提供了在设备旋转时,界面显示发生相应适配的能力,已达到方便用户使用并提供最佳显示效果的目的。开发者需要指定应用支持的显示方向,并对界面显示做出对应的适配。现在的app绝大部分都是从iOS7开始支持了,所以iOS6之前的转品不在本文的考虑范围 一、两种旋转方向 1. 设备方向(device orientation) 2. UI显示的方向 iOS提供了在设备旋转时,界面显示发生相应适配的

2017-06-15 11:19:19 642

转载 iOS .ips(crash)崩溃报告文件分析

对于我们iOS开发者来说,最心碎的事莫过于苹果审核一个星期后上架app store,而第二天就报出闪退bug。   iOS app的所有崩溃记录都会记录在设备上,所以对于和我一样没有集成让用户发送崩溃报告功能的iOS开发者来说,要获得crash文件就必须先连上崩溃过的 机器,然后打开Xcode,选择Window -> Devices,选择你自己的机器,然后点击View Device L

2017-06-13 15:59:31 8281

原创 iOS-程序的启动过程以及相关的注意事项

iOS程序运行原理图 虽然建立了一个App,对于它的执行过程我们还是一无所知,让我们首先找到它的入口,Support Files/main.mint main(int argc, char *argv[]){ @autoreleasepool { /* int argc, char *argv[], NSString *principalCla

2017-06-09 17:29:53 320

转载 Block的解析

一,block是什么?*带有自动变量的匿名函数。 ————引自《iOS与OS X多线程和内存管理》* 1.匿名函数 首先blocks是c语言的扩充功能 c语言中函数是这个样子的:void func() { printf("hello world");}那么,block是一个什么样子的呢?^void () { printf("hello world");}这种不带名的函数就

2017-06-07 19:42:00 453

原创 不在appIcon上显示推送数量,但是在系统通知栏保留推送通知的方法

细心的同学会发现这样一个情况,当我们执行以下代码:[UIApplication sharedApplication].applicationIconBadgeNumber = 0;虽然appIcon上面的数字消除了,但是通知栏中所有的推送也会被清除。那么如何既让数字消失,又保留通知栏的推送信息呢?本人呕心沥血,查遍了苹果的接口文档,搜遍了国内的博客,就是没找到。 但是,嘿嘿,肯定是找到了解决

2017-06-02 17:44:57 991

原创 copy和mutable copy

copy和mutable copy一,浅拷贝 只是指针的拷贝,并没有内存的改变。 二,深拷贝 会新生成一块内存,这块内存的初始值和原内存的值是相同的。但新内存存的值不可以改变 三,可变拷贝 也会新生成一个块新的内存,新内存的值和元内存的值是相同的,新内存存的值可改变。 代码如下:int main(int argc, const char * argv[]) { @autorele

2017-06-02 17:37:05 443

原创 不在appIcon上显示推送数量,但是在系统通知栏保留推送通知的方法

细心的同学会发现这样一个情况,当我们执行以下代码:[UIApplication sharedApplication].applicationIconBadgeNumber = 0;   虽然appIcon上面的数字消除了,但是通知栏中所有的推送也会被清除。那么如何既让数字消失,又保留通知栏的推送信息呢?本人呕心沥血,查遍了苹果的接口文档,搜遍了国内的博客,就是没找到。

2016-08-19 12:33:58 2945

原创 空指针,空对象,野指针

1、nil:一般赋值给空对象;2、NULL:一般赋值给nil之外的其他空值。如SEL等;  举个栗子(好重啊~):    [NSApp beginSheet:sheet                modalForWindow:mainWindow                modalDelegate:nil //pointing to an object

2015-11-23 17:41:25 1303

转载 内存管理

1,原理:ObjC中内存的管理是依赖对象引用计数器来进行的:在ObjC中每个对象内部都有一个与之对应的整数(retainCount),叫“引用计数器”,当一个对象在创建之后它的引用计数器为1,当调用这个对象的alloc、retain、new、copy方法之后引用计数器自动在原来的基础上加1(ObjC中调用一个对象的方法就是给这个对象发送一个消息),当调用这个对象的release方法之后它的

2015-11-23 16:27:34 394

转载 内存管理中各属性值的区别

strong,assign,retain,weak,copy的区别strong与weak是由ARC新引入的对象变量属性 xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的。xcode 4.3(ios5和以上版本)之后就有了ARC,并且开始使用 strong与weak ass

2015-11-21 16:29:37 413

转载 ​MVC与MVVM区别?

​在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 MVC模型关注的是Model的不变,所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。  MVVM在概念上是真正将页面与数

2015-11-18 10:51:20 589

原创 代理和块的区别

delegate:1,“一对一”,对同一个协议,一个对象只能设置一个代理delegate,所以单例对象就不能用代理;2,代理更注重过程信息的传输:比如发起一个网络请求,可能想要知道此时请求是否已经开始、是否收到了数据、数据是否已经接受完成、数据接收失败block:1:写法更简练,不需要写protocol、函数等等2,block注重结果的传输:比如

2015-11-17 15:50:04 383

原创 iOS下的后台任务实现方法

后台任务场景一地图后台定位  场景二后台播放音乐场景三 后台 更新推送内容 场景四 voip  IP电话   视频通话关于Background Fetch的更多请参考:<IOS 7四种后台机制> 中关于Background Fetch的解释,这里只说明怎么使用

2015-11-17 15:48:54 908

原创 主队列,全局队列,并发队列关系比较

多线程(2) - ios关于线程调度的三种方式之GCDGCD(链接:http://blog.csdn.net/linzhiji/article/details/6863972)一 概念和理解    Grand Central Dispatch(多线程的优化技术)GCD    是一套底层API,基于C语言开发的多线程机制,提供了新的模式编写并发执行的程序。 

2015-11-17 15:46:37 6350 1

原创 GCD应用拓展

多线程(3) - ios关于线程调度的三种方式之GCD  一,  队列的选择技巧    1,串行队列异步执行:开一条线程,顺序执行,效率不高,执行比较慢,资源占用小,省电。使用场合:一般网络是3g,对性能要求不高,    2,并发队列异步执行:开启多条线程,并发执行,效率高,消耗资源大,费电。使用场合:网络是WiFi,要求用户体验非常流畅。对任务的顺序没有要求。

2015-11-17 15:43:59 381

原创 iOS下的XML解析

XML解析一,属性和元素的区别二,XML的解析方式有两种    SAS:适合大,小文件解析,从上往下,一点,一点读取。苹果推荐    DOMS: 适合小文件解析,一次性将文档以属性结构读入内存。对内存消耗比较大    解析步骤:    1,打开文档    2,开始节点    3,发现节点里面的内容   

2015-11-17 11:26:27 284

原创 ios关于线程调度的三种方式之NSThread

一,一些基本概念的理解            任务:就是系统要处理的事情,简单的理解可以是程序要执行的函数或者方法体            队列:任务的容器,多个任务按照排队的方式放置在队列中。队列是任务的容器,线程是任务执行的资源。            并行和串行:                    首先并发和串行是针对任务来说的。

2015-11-16 17:56:01 835

空空如也

空空如也

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

TA关注的人

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