自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iOS_Manguoge的博客

传送一个有温度的iOS开发博客

  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS 最详细清晰的NSTimer定时器与内存泄漏剖析

iOS NSTimer与内存泄漏NStimer的基本用法内存泄漏解除循环引用NStimer的基本用法NSTimer有如下两种基本的使用方式:1. 创建对象并加入到当前的runloop里 self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(fire) userInfo:nil re...

2020-02-10 20:37:10 862 1

转载 数据采集上报之灯塔SDK详解

作者:jackhuali 腾讯PCG工程师|导语灯塔SDK当前的日活终端设备数超过10亿,日事件上报量超过万亿条,灯塔SDK是什么,灯塔SDK做了哪些工作来支撑如此大业务需求的呢?灯塔SDK是怎么保障业务客户端事件数据上报的准确性的呢?带着问题我们接下来一步步进行拆解。灯塔SDK从2011年左右诞生至今,并随着PCG数据治理地持续推进,灯塔SDK逐步被各个业务线所深度使用,灯塔SDK逐渐收敛其余上报通道,成为了公司级统一的数据上报通道。以下总结了大家日常对灯塔SDK集成、测试、...

2021-06-02 01:07:16 2362

转载 认识敏捷开发

1,提要 软件开发是一个系统工程,包括最初的可行性分析、再到设计、开发、测试、维护等整个生命周期。在这个过程中某些阶段的失误或说是变化,都可能增加整个软件项目的风险。 如何在保证效率的基础上还能安计划、保证质量的完成软件项目?于是产生了软件开发的一些方法,这个方法不是指具体有编码阶段的各种设计模式和技巧,而是在整个软件开发策略层面的方法。 传统瀑布模式和新型的敏捷开发就是其中最常用的方法,后面

2017-04-05 19:32:58 650

转载 从地址栏输入URL到页面加载显示的过程分析

当我在浏览器的地址栏里输入一个完整的URL,在按下回车直至页面加载完成,整个过程发生了什么?

2017-03-29 14:47:23 1415

原创 iOS 自定义SZDownloader文件下载器封装及使用

SZDownloader是一个用于下载文件的小型库。您可以使用Block或Delegate下载文件。如果您正在使用TableView,您应该使用Delegate而不是Block。

2017-03-28 09:39:20 959

转载 iOS 多线程安全数组

iOS-SDK只提供了非线程安全的数组。如果要多线程并发的使用一个数组对象就必须要加锁。在多线程下使数组安全,就是通过给数组的访问和修改添加同步限制,使数组多线程安全。

2017-03-15 17:14:53 3550

原创 iOS NSObject中forwardInvocation消息重定向

NSObject是大多数系统 api的基类,现在介绍一下它的forwardInvocation功能。在obj-c中我们可以向一个实例发送消息,实例收到消息后会进行一些处理。比如我们想调用一个方法,便向这个实例发送一个消息,实例收到消息后,如果能respondsToSelector,那么就会调用相应的方法。如果不能respond一般情况下会crash。今天要的,就是不让它crash。

2017-03-15 16:01:04 1918

原创 iOS 面向对象编程的三大特征

对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

2017-03-13 21:13:36 1458

转载 iOS 根类NSObject

根类不从其它类继承,但是类层次中的所有其它类都最终从根类继承下来。根类连同Objective-C语言,是Cocoa直接访问Objective-C运行环境或与之交互的基本途径。仅凭Objective-C语言和运行环境并不足以构造哪怕是最简单的面向对象的程序,至少是不容易的。还缺少一些东西:即所有对象公有的基本行为和接口的定义。根类正是提供了这些定义

2017-03-13 20:33:33 1142

原创 原生、混合、react-native应用对比分析

原生开发是系统自带的app开发方式,也是大部分人最熟悉app开发的技术,如android、ios、wp。H5开发是Html5开发的app,本质上运行在手机浏览器中的页面,一般使用app做一个壳套用浏览器运行H5的页面,由于H5的特性也有很多app使用半原生半H5的hybird app 开发模式。react-native是用react 进行原生app开发的框架,让广大开发者使用js和react开发应用,提倡组件化开发

2017-03-12 18:40:23 8791 1

原创 Homebrew简介及使用

linux系统当前主流的两大发行版本都自带了软件包依赖解决方案,Red hat有yum,Ubuntu有apt-get;Windows系统也有多种方便的软件管理工具,如:360软件管理,QQ软件管理,迅雷软件管理等多种。 Mac OS X系统下面之前有老牌的Macports,Fink包管理系统,包括apple的官方Mac App Store。现在推荐一款更好用的Mac os下得的软件包依赖安装解决工具:Homebrew,简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件

2017-03-12 16:42:07 490

转载 iOS 加载、滑动翻阅大量图片解决方案详解

今天分享一下私人相册中,读取加载、滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制。我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏浏览界面的这短暂的1秒内(和后续的几秒),都发生了什么。

2017-03-10 10:10:24 1779 1

转载 iOS 创建iOS框架

发现在gitHub上有一个非常惊人的开源项目:iOS-Universal-Framework. 这个工程基本上是一个项目模板。你只需安装这个项目,现在你就多了一个新选择来创建项框架。

2017-03-08 16:09:30 257

原创 Object-C语言的优缺点

Category类别,在不改变原有类的基础上,为类增加一些方法。协作开发的时候,可以不用担心合并冲突的问题。Posing,Posing的意思是扮演,冒充。Posing存在的目的在于子类可以冒充父类,可以让父类表现为子类的行为。主要使用到的方法就是poseAsClass方法,不过貌似这个方法现在已经被禁用了。还可以通过修改isa指针来修改指向的类,如KVO。

2017-03-08 15:53:55 967

原创 iOS 开发技术栈与进阶

iOS 开发技术栈与进阶

2017-03-08 15:40:51 944

原创 iOS 使用JSPatch实现APP线上修复的热更新

JSPatch 是一个开源项目(Github链接),只需要在项目里引入极小的引擎文件,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,替换任意 Objective-C 原生方法。目前主要用于下发 JS 脚本替换原生 Objective-C 代码,实时修复线上 bug。

2017-03-08 15:02:16 512

转载 算法基础:堆排序原理及其实现

堆排序是利用堆的性质进行的一种选择排序。

2017-03-06 14:09:03 194

转载 Linux 进程间通信之共享内存

共享存储,就是一块共享的内存区域,它可被多个进程以读或写的形式访问,以达到进程间通信的目的。 因为这个通信方式,发送端与接收端不需要来回复制要发送接收的信息,所以共享存储是最快的一种IPC(进程间通信方式)。

2017-03-05 09:57:39 258

转载 iOS 单例模式实现

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

2017-03-03 23:16:40 293

原创 iOS 内存管理

内存中的对象主要有两类,一类是值类型,比如int、float、struct等基本数据类型,另一类是引用类型,也就是继承自NSObject类的所有的OC对象。前一种值类型不需要我们管理,后一种引用类型是需要我们管理内存的,一旦管理不好,就会产生非常糟糕的后果。

2017-03-02 09:15:51 411

转载 iOS UITableView优化技巧

优化的三大方面:提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法;遇到复杂界面,异步绘制;滑动时按需加载,在大量图片展示,网络加载的时候按需加载!(如SDWebImage异步加载)

2017-03-01 22:18:49 302

原创 iOS 应用程序生命周期

应用程序的状态(五大状态)Not running 未运行 程序没启动Inactive 未激活 程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态Active 激活 程序在前台运行而且接收到了事件。这也是前台的一个正常的模式Backgroud 后台 程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。

2017-02-28 20:58:35 169

原创 iOS 多线程与GCD

进程:系统中正在运行的一个程序,进程之间是相互独立的,每个进程都有属于自己的内存空间。比如手机中的 微信 应用和 印象笔记 应用,他们都是iOS系统中独立的进程,有着自己的内存空间。线程:进程内部的任务执行路径。进程若想执行任务,则必须得在线程下执行。也就是说进程至少有一个线程才能执行任务。多线程的实现原理:虽然在同一时刻,CPU只能处理1条线程,但是CPU可以快速地在多条线程之间调度(切换),造成了多线程并发执行的假象。

2017-02-28 16:33:23 407

原创 《MySQL必知必会》笔记一 数据库入门及数据检索

数据库是保存表和其他SQL结构的容器客户机--服务器软件,服务器部分负责所有的数据访问和处理,运行在数据库服务器上;关于数据的增删、更新等的请求都由服务器软件完成,这些请求来自运行客户机的计算机;客户机是与用户打交道的软件;表由行和列组成,行包含了某个对象的所有信息,列是某个分类的所有信息,也就是所有对象在这个分类的所有信息;

2017-02-27 19:58:27 435

转载 iOS 沙盒目录结构解析

出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致。

2017-02-26 13:17:26 293

原创 iOS 内存缓存和磁盘缓存

在项目中我们难免会用到一些缓存方式来保存服务器传过来的数据,以减少服务器的压力。 缓存的方式分为两种分别为内存缓存和磁盘缓存,内存缓存速度快容量小,磁盘缓存容量大速度慢可持久化。

2017-02-26 12:48:59 3954

转载 iOS 异步图片加载优化与常用开源库分析

1. 网络图片显示大体步骤:下载图片图片处理(裁剪,边框等)写入磁盘从磁盘读取数据到内核缓冲区从内核缓冲区复制到用户空间(内存级别拷贝)解压缩为位图(耗cpu较高)如果位图数据不是字节对齐的,CoreAnimation会copy一份位图数据并进行字节对齐CoreAnimation渲染解压缩过的位图

2017-02-26 11:31:48 524

原创 iOS 最全ReactiveCocoa原理及使用方法

ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。

2017-02-25 11:36:42 4868

原创 算法基础:归并排序算法原理与实现

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。

2017-02-24 17:07:21 266

转载 CocoaPods安装和使用教程

CocoaPods是什么?如何下载和安装CocoaPods?如何使用CocoaPods?

2017-02-23 23:31:01 301

原创 算法基础:快速排序算法原理与实现

有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”在快速排序算法中,使用了分治策略。首先把序列分成两个子序列,递归地对子序列进行排序,直到整个序列排序结束。步骤如下:在序列中选择一个关键元素做为轴;对序列进行重新排序,将比轴小的元素移到轴的前边,比轴大的元素移动到轴的后面。在进行划分之后,轴便在它最终的位置上;递归地对两个子序列进行重新排序:含有较小元素的子序列和含有较大元素的子序列。

2017-02-23 00:39:16 280

原创 剑指:链表中的倒数第k个结点

输入一个链表,输出该链表中倒数第k个结点。思路:两个指针相隔k-1个结点,同时前进,当第一个的指针到达尾结点时,第二个指针指向的节点即是倒数第K个结点

2017-02-21 17:18:02 181

原创 剑指:数值的整数次方

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路1:累乘,时间复杂度为O(n)

2017-02-21 11:34:16 212

原创 剑指:矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:第一块有两种方式:横着放和竖着放横这放对应为发f(n-2);竖着放下一步的放方法为f(n-1);所以总的放的方法为f(n)=f(n-1)+f(n-2);实现: int rec

2017-02-20 23:14:31 212

原创 剑指:二进制中1的个数

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

2017-02-20 23:11:06 303

转载 iOS MVC和MVP的项目重构总结

简而言之,MVP是View驱动的,View层持有一个对应Presenter的引用,View上的交互事件首先会调用Presenter提供的接口,然后Presenter调用Model提供的方法取得数据,最后Presenter将取得的数据传递到View上展示.MVC则是由Controller驱动的,Controller持有View,并响应View上的交互事件,根据交互调用不同的Model方法取得反馈数据,再将数据传递给View展示.MVP是用户视角:所见即View.MVC则是程序员视角

2017-02-20 14:52:56 923

原创 剑指:跳台阶与变态跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:采用分治法,本次跳的跳法等于他的前一步和前两部的跳法之和,运用递归求解,即和斐波那契数列一样

2017-02-19 21:54:54 267

原创 剑指:斐波纳契数列动态规划求解

在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*),现在要求输入一个整数n,请你输出斐波那契数列的第n项。

2017-02-19 20:49:23 356

转载 iOS 字典转模型高级实现

字典跟模型的优缺点比较:1>字典在使用key的时候Xcode不会有提示,容易出错,模型就不会2>①所谓模型,其实就是数据模型,专门用来存放数据的对象,用它来表示数据会更加专业②模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此,保证了数据的正确性③使用模型访问属性时,编译器会提供一系列的提示,提高编码效率

2017-02-19 19:13:32 221

原创 iOS Runtime原理及使用

RunTime简称运行时。OC就是运行时机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。

2017-02-19 16:53:41 426

罗万成 大学生数学建模案例精选

D:\数学建模\2007 罗万成 大学生数学建模案例精选.本文写的非常好 ,很适合数学建模竞赛和编程

2014-01-16

空空如也

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

TA关注的人

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