![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
文章平均质量分 86
奔跑的蚂蚁01
这个作者很懒,什么都没留下…
展开
-
使用OpenCV处理图片的亮度、对比度、曝光、高光、阴影、饱和度、色温,色相(附源码)
集成opencv的方式请参照上一个帖子废话不多说直接上代码,伸手党福利:代码中记得引入头文件及命名空间。原创 2023-05-22 16:03:54 · 6032 阅读 · 0 评论 -
使用CGImageRef创建图片及实现图片区域裁剪(附源码)
CGImageRef使用,图片裁剪原创 2023-05-18 23:45:35 · 914 阅读 · 0 评论 -
iOS图片颜色空间深究
图片在项目的开发中使用频率很高,但是绝大部分都是作为普通的展示或者偶尔需要裁剪,并不需要对图片做什么特别的处理,最近做了一个项目对于图片的需求功能比较多,踩了很多坑的同时也对图片的使用有了更深的理解,整理下来以便日后回顾。原创 2023-05-16 16:34:16 · 652 阅读 · 0 评论 -
iOS NSObject对象的本质、内存分配、ISA指针及superclass底层源码分析
本篇幅内容较多,但是干货满满,不仅涉及源码分析还涉及模拟系统底层计算分配流程,建议分次食用,耐心看完相信会有很多收获~开发中使用最多的就是NSObject对象了,最近深入研究了一番,整理出来比较重要也是自己研究的比深入的几个点,通过源码的角度来分析一下,包括对象的底层实现,以及系统是如何使用内存对齐机制来计算对象大小的,包括isa指针及superclass指针等源码级别的分析,特做记录,以供翻阅回顾。一 对象的本质OC中的对象分为三种:实例对象(instance对象)存储实例变量的值类对象(ca原创 2020-08-24 09:44:03 · 491 阅读 · 0 评论 -
iOS消息转发机制及避免崩溃的解决方案
最近研究了一下iOS的消息转发机制,特此做记录,用一个真实的例子让自己理解的更深刻。这个例子会列举方法没有实现而导致崩溃的避免措施,。息的转发分为三步,通过这个例子看一下在每一步的转发中如何避免因为方法没有实现而导致的程序崩溃。先说一下消息转发的整个流程吧,我们知道调用对象的某一个方法的时候其实就是再给这个对象发消息,来调用他的方法,假如我们有一个Dog类,我们调用他的testFun方法,调用如下:Dog *testDog = [Dog new]; [testDog performSelector:@原创 2020-08-19 23:21:45 · 1243 阅读 · 0 评论 -
符号化APPStore的崩溃报告(最详细实操)
开发中经常遇到苹果反馈的崩溃报告,绝大部分都是没有经过符号化的报告,看起来一头雾水排查问题也不知道如何下手,经过详细翻阅苹果官方文档以及经过亲身实践后,整理出来分析未经符号化报告的几种方法,记录下来,方便自己方便他人~重要提醒:如果项目中开启了bitcode模式,那么在分析线上崩溃的时候一定要去更新下自己的dSYM文件,因为开启bitcode发布的包,在你本机上编译之后的版本并不是最终发布给用户的版本,从你本机上传至APPStore之后,APPStore会再次编译该应用包,然后分发给用户,所以用户拿到的包原创 2020-08-18 17:42:12 · 671 阅读 · 0 评论 -
SVN命令行使用介绍
之前一直在mac上使用第三方的SVN软件(诸如smartSVN,Cornerston)来进行代码的管理,只会在软件上点来点去来完成日常的工作,对SVN的很多机制及原理并没有深入研究过。深知想增加自己的知识积累,对SVN仅仅停留在简单的“会用”层面是不行的,所以这几天抽取了零零散散的时间研究了下在mac终端使用SVN进行代码管理的知识,网上查阅了很多资料,也翻阅了SVN的使用手册,经过各种尝试后,对...原创 2018-05-20 22:36:56 · 10505 阅读 · 1 评论 -
iOS集成环信推送,最详细流程(证书创建、环信集成、测试)
这几天项目里又用到了环信的推送,虽然之前做过,但是很久不做还是有很多细节没有注意到,所以还是决定从头开始做一遍,把每一个环节都详细记录下来,同样的把每一个坑也记录下来.方便自己以后做的时候忘记哪个流程了可以在看一遍.我很能理解那种遇到问题网上百度一堆类同的答案但是并不好使的情况,所以我会将我在项目中遇到的问题都贴出来,希望能给大家带来些许参考和帮助,一.推送的原理和流程(着急做推送的可以跳过这一步)原创 2016-12-01 16:43:44 · 7590 阅读 · 3 评论 -
iOS中成员变量和属性区别
历史由来:接触iOS的人都知道,@property声明的属性默认会生成一个_类型的成员变量,同时也会生成setter/getter方法。 但这只是在iOS5之后,苹果推出的一个新机制。看老代码时,经常看到一个大括号里面定义了成员变量,同时用了@property声明,而且还在@implementation中使用@synthesize方法。 如下:Demo@interfac转载 2016-10-18 00:14:08 · 683 阅读 · 0 评论 -
Debug和Release模式的区别
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/转载 2016-10-17 23:35:19 · 1756 阅读 · 0 评论 -
CAShapeLayer的使用
CAShapeLayer的使用之前在项目中,经常会需要设置圆角的一些属性或者一些动画,经常会涉及到layer层的东西,而如果需要我们自定义图形的话,那么我们经常就会用到CAShapeLayer来创建了.而且经常与其一起搭配使用的是UIBezierPath.这两天比较闲,就写了这篇博客来记录下自己写的一个小Demo,虽然使用起来很简单,但是偶尔想不起来如何设置的话,也是一件很纠结的事情…如果我们要绘制原创 2016-07-23 17:52:22 · 3434 阅读 · 0 评论 -
runtime运用实例
runtime的运用: (以下代码全部都基于Dog类创建的一个对象:dog) 1.使用id类型来创建变量以便接受不同类型的对象 2.使用 [person performSelector:@selector(test2:) withObject:@"传入参数"];来动态的调用方法;3.使用objc_setAssociatedObject(id object,const原创 2016-07-17 11:23:50 · 941 阅读 · 0 评论 -
IOS开发中(null)与<null>的处理
转自:http://blog.csdn.net/shenshen123jun/article/details/38315755 收藏起来方便自己查看不小心在开发过程中,得到了(null)以及的返回值,找了好长时间只找到了一个关于的。由于要根据返回值进行判断,做出必要反应,因此必须知道返回值所代表的具体字符,在得到(null)后利用isEqual:和@“”,NULL,@“(nu转载 2016-07-18 19:36:52 · 314 阅读 · 0 评论 -
快速排序/二分插入排序的swift以及Java实现
经常会用到排序的算法,比如:冒泡法,选择法,快速排序,二分插入排序等等.前面两个就不说了,贴出来自己写的快速排序和二分插入排序的swift及Java的代码实现,喜欢的话control+C拿去用.swift实现快速排序和二分插入排序算法:(想运行的话,直接复制代码,替换掉控制器里的viewDidLoad方法就好了)override func viewDidLoad() {原创 2016-07-17 11:25:52 · 741 阅读 · 0 评论 -
异常捕获try catch的使用
新的异常捕获机制更新于 WWDC 2015上发布的新的Swift2.0,异常的try-catch机制有助于我们更快的定位出错原因所在,此处简单说明下try-catch机制的用法.1.定义枚举异常值 首先我们可以创建自己的异常枚举值,这要实现ErrorType协议,只不过这个协议是空的,我们加上就好.2.抛出异常 我们可以在方法中抛出异常,定义抛出异原创 2016-03-09 14:47:11 · 3174 阅读 · 0 评论 -
使用AFNertorking遇到code-1016的情况
在使用AFNetworking的时候,经常会遇到这个问题,网上的很多方法是去self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil]添加字段text/html,但是我添加之后还是不能成功的请求下来数据,后来耐着性子看了下错误原因,原创 2015-12-11 18:30:01 · 1419 阅读 · 0 评论 -
Kill应用之后断点续传的实现
Kill应用之后断点续传的实现之前使用NSURLSession做了一个断点续传的demo,主要实现了在下载的过程中中断下载,然后可以再次启动延续上次的下载链接继续下载的功能.原理是将task的方法cancelByProducingResumeData的Block块中的resumeData获取下来,当再次下载的时候,通过session的downloadTaskWithResumeData方法使用该re原创 2016-07-31 00:27:17 · 2201 阅读 · 2 评论 -
NSURLSession用法示例及断点续传视频的实现
NSURLSession用法示例及断点续传视频的实现NSURLSession是苹果在WWDC2013中提出来的,旨在替代NSURLConnection,与我们之前经常使用的NSURLConnection不同,NSURLSession为我们提供了更灵活的使用方法,包括后台下载以及断点续传的实现等功能.之前使用下载一直用的都是第三方框架比如OC的AFNetworking或者swift的Alamofire原创 2016-07-30 18:51:46 · 1118 阅读 · 0 评论 -
ios多线程使用之细细细~解
ios多线程使用之细细细~解在开发中经常会用到多线程来处理一些比较耗时的任务,比如下载的时候存储数据、当进入一个新页面的时候将网络请求放在后台,数据下来之后再到主线程来将数据展示出来等操作,以此来满足用户大老爷的体验,让他们开开心心的用我们开发出来的应用而不是用的时候一脸懵逼的等待响应T T。平常在开发的过程中,我们只需将耗时应用放在后台的子线程、任务结束之后回到主线程来刷新页面就好了。基本下面的原创 2016-08-03 02:43:07 · 826 阅读 · 0 评论 -
iOS缓存机制及实战验证
iOS缓存机制及实战验证在开发中,我们需要考虑很多问题,不仅仅要考虑到用户的数据安全以及用户体验问题,还需要考虑我们平常深恶痛疾的流量问题。我不止一次的恶心那些相当耗费流量的软件,尤其是现在网页浏览的时候,我们的智能手机浏览速度快,而且加载的图片都是高清的,就导致流量哗哗的跑,上个月有两次,流量一分钟跑了300多兆,真的是。。。。哎,扯远了,所以,在很多时候,不管是基于用户没有网络浏览数据的出发点也原创 2016-09-12 19:13:20 · 548 阅读 · 0 评论 -
runtime的简单理解
最近闲了下来,有时间了就研究一下runtime的运行机制,之前做开发的时候一直也没有特别关注这个东西,只是知道有,但是很少去刻意的使用,研究的不是很深,简单说一下吧,有错误的地方欢迎大家随时指正. 之前对于runtime的理解,只是仅仅局限于对变量或者对象的类型由编译时推迟到了运行时.比如定义一个NSString类型的变量,语句这么写 则会输出原创 2016-07-16 16:19:34 · 843 阅读 · 0 评论 -
UIBezierPath的使用
UIBezierPath的使用最近研究了下UIBezierPath,虽然他的构造方法不是特别多,但是感觉还是特别实用的,就是用起来感觉很方便,其主要作用还是用于为视图的Layer层添加路径,相当于根据我们创建的path来对目标视图进行切割.比如说我要把一个视图的形状裁剪一下,或者我想自定义一个几何图形什么的,用UIBezierPath来实现都是很方便的.唯一不方便的地方就是如果要在一个view上只使原创 2016-07-24 12:04:37 · 1736 阅读 · 0 评论