![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
Yin_Xian
邮箱:yin.xian@foxmail.com
微信:yin__xian
展开
-
iOS Git 返回以前提交的版本
用Xcode写程序时,git是一个非常好用的工具,git的提交的方法非常的简单,但是返回历史提交的记录有点复杂,下面就简单介绍一下怎样返回历史的版本,顺便说一下,返回历史版本需要使用终端第一步:打开终端 切换路径,在终端输入cd+空格+工程的路径 工程的路径直接将工程拖入终端即可:第二步:键入git reflog //用来查看历史所提交的日志第三步 键入re原创 2015-10-10 17:15:40 · 1253 阅读 · 0 评论 -
Next RunLoop
深入理解RunLoopRunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。RunLoop的概念一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,转载 2016-06-05 21:39:02 · 521 阅读 · 0 评论 -
写单例,看完这个就够了
单例模式的作用可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源。单例模式在ARC\MRC环境下的写法有所不同,需要编写2套不同的代代码,因为作者在写此博客的时候,MRC已经非常少用了,所以这里只提供了在ARC模式下的单例书写方式。下面直接上代码;Person.m中的实现static Person *_person;//static关键原创 2016-06-04 17:48:16 · 756 阅读 · 0 评论 -
iOS 多线程 GCD
1.GCD简介 GCD全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”,他是纯C语言,提供了非常多强大的函数。 GCD的优势 ①GCD是苹果公司为多核的并行运算提出的解决方案; ②GCD会自动利用更多的CPU内核(比如双核、四核); ③GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程),程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代原创 2016-06-04 17:05:23 · 475 阅读 · 0 评论 -
iOS 用Quartz2D实现图片水印,裁剪,连线等功能
因为Quartz2D在开发中的用途非常的大,要想穷尽这些功能也不是太现实。所以下面我们介绍常用的几个利用Quartz2D实现的几个功能。1.实现图片水印的效果。图片水印的作用是防止他人盗取图片,给图片加一些logo,生成一张新的图片。代码如下 这里有几个注意点: 1.图片水印是对图片进行操作的,需要生成一张标记的图片,所以用的是位图上下文。而且必须手动创建,手动关闭,否则会引起内存泄露。原创 2016-05-28 11:04:28 · 494 阅读 · 0 评论 -
详解持久化Core Data框架的原理以及使用
"Care Data是一个纯粹的面向对象框架,可用于管理实体以及实体之间的关联关系的持久化,也就是我们通常所指的数据持久化。"1.原理部分Care Data是一个纯粹的面向对象框架,可用于管理实体以及实体之间的关联关系的持久化,也就是我们通常所指的数据持久化。 Care Data底层的持久化存储方式可以是SQLite数据库,也可以是XML文档,甚至可以直接以内存作为持久化存储设备。 Care转载 2016-04-20 12:29:39 · 1162 阅读 · 0 评论 -
iOS Quartz2D基本图形绘制(一)
1. Quartz2D简介Quartz2D是二维的绘图引擎(经包装的函数库,方便开发者使用。也就是说苹果帮我们封装了一套绘图的函数库),用Quartz2D写的同一份代码,既可以运行在iphone上又可以运行在mac上,可以跨平台开发。开发中比较常用的是截屏/裁剪/自定义UI控件。Quartz2D在iOS开发中的价值就是自定义UI控件。2.Quartz2D绘图演练①首先新建一个工程,在storyboa原创 2016-05-14 22:54:46 · 549 阅读 · 0 评论 -
iOS tableViewCell设置分割线从最左端开始
我们在做项目的时,有时候项目需求需要tableViewCell设置分割线从最左端开始通过查阅资料和自己亲身使用,发现iOS8和iOS9上用以下方法都可以实现要求,代码是这样的 -(void)viewDidLayoutSubviews { if ([self.orderTableView respondsToSelector:@selector(setSeparatorInset:)])原创 2016-04-19 16:05:39 · 603 阅读 · 0 评论 -
iOS SVProgressHUD延迟提示显示时间的方法
SVProgressHUD对iOS开发者来说是一个很好用的第三方开发类库,但是在用的时候,提示的显示时间有的时候非常的短,在上查找了很多的资料,发现并没有相关的资料.自己尝试了一下通过这种方法能够实现控制提醒的显示时间,方法如下 然后在myMethod方法中实现显示蒙版的方法,即 这样就可以了原创 2016-04-14 14:40:39 · 5860 阅读 · 0 评论 -
iOS 加载xib的两种方式
工程中很多情况下会用到xib,有时候会忘记加载xib的方法,现在记录下来,便于查看.原创 2016-03-14 20:03:39 · 554 阅读 · 0 评论 -
iOS面试 类的扩展,分类,延迟的方法,懒加载
1.类的扩展(Extension) ①格式 objc @interface 类名() /** 属性、方法的声明 */ @end ②作用1.为某个类增加额外的属性和方法声明,可以写在.h和.m文件中.为某个类增加额外的属性和方法声明. 看代码你就想起来了.2.分类(Category)分类只能扩充方法,不能扩展属性和成员变量(如果包含成员变原创 2016-03-08 23:24:52 · 647 阅读 · 0 评论 -
iOS storyboard中设置TableView的headerview 和 footerview
使用storyboard时,在TableView上添加TableheaderView和TableFooterView的方法原创 2016-03-30 19:15:07 · 2205 阅读 · 0 评论 -
iOS 多线程
在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实际使用中感受它们的区别。还有一点需要说明的是,这篇文章将会使用 Swift 和 Objective-c 两种语言讲解,双语幼儿园。OK,let's begin!概述这篇文章中,我不会说多线程是什么、线程和进程的区别、多线程有什转载 2015-11-11 19:12:32 · 470 阅读 · 0 评论 -
Hello RunLoop
在刚刚接触RunLoop的时候,查过很多的博客,但是可能是自己智力有限的原因,看不懂,看的头都大了,也看不懂。到后来那,看过李明杰老师讲的RunLoop的视频以后,我似乎听懂了,下面我分享一下我的经验总结。什么是RunLoopRunLoop就是一个运行循环,在主线程中,RunLoop会默认启动一个RunLoop循环,来保证运行中的程序不会马上退出。RunLoop内部其实是一个do while循环,这原创 2016-06-29 20:06:54 · 399 阅读 · 0 评论