iOS
文章平均质量分 80
Episodeyun
这个作者很懒,什么都没留下…
展开
-
在Xcode中使用Git进行源码版本控制
在应用程序开发过程中,很重要的一部分工作就是如何进行源码的版本控制。当代码出现问题时,我们就需要将代码恢复到原先正常的版本。如果是多个人共同开发一个项目,那么代码的控制就会非常复杂。幸运的是,开发者不需要自己控制这些,因为有专门的软件来负责,叫做版本控制系统。版本控制系统,或者说修改控制系统,实际上是一种检测源文件的改变并将其保存留作以后参考使用的机制(软件)。此外,它还能记录其他有用翻译 2015-06-25 21:31:14 · 425 阅读 · 0 评论 -
SDWebImage使用,图片加载和缓存
清除缓存:[[SDImageCache sharedImageCache] clearDisk];[[SDImageCache sharedImageCache] clearMemory];来自:http://blog.csdn.net/sqc3375177/article/details/7714573SDWebImage托管在gith转载 2015-07-09 11:24:38 · 440 阅读 · 0 评论 -
使用AFNetworking, SDWebimage和OHHTTPStubs
写了个示例,放在GitHub上。以下内容主要介绍:基于AFNetworking的HTTP操作,GET获取网页和JSON数据,上传文件,下载文件,以及加载图片基于SDWebimage的加载图片基于OHHTTPStubs的伪造网络响应用于测试(stub),而且可以模拟出网络的延时使用基于NSURLSession的AFNetworking APIAFNetworkin转载 2015-07-09 11:29:21 · 517 阅读 · 0 评论 -
UIPopoverController的使用
1 实现如下: 2 首先加入委托:UIPopoverControllerDelegate 3 先创建一个popover和实例化tableview的类(该类的xib文件中,view中就放了一个tablview): 4 UIPopoverController *popover; 5 popTableViewController *popoverContent; 6 7 在Customer转载 2015-07-10 22:53:37 · 413 阅读 · 0 评论 -
iOS开发系列--网络开发
概览大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的。如今,网络编程越来越普遍,孤立的应用通常是没有生命力的。今天就会给大家介绍这部分内容:Web请求和响应使用代理方法 简化请求方法 图片缓存 扩展--文件分段下载 扩展--文件上传 NSURLSession数据请求 文件转载 2015-07-13 15:01:07 · 351 阅读 · 0 评论 -
IOS开发系列--无限循环的图片浏览器
--UIKit之UIScrollView概述UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件。在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通。今天我们主要来看一下UIScrollView的内容转载 2015-07-13 15:08:59 · 487 阅读 · 0 评论 -
IOS开发系列--Objective-C之协议、代码块、分类
概述ObjC的语法主要基于smalltalk进行设计的,除了提供常规的面向对象特性外,还增加了很多其他特性,这一节将重点介绍ObjC中一些常用的语法特性。当然这些内容虽然和其他高级语言命名不一样,但是我们都可以在其中找到他们的影子,在文章中我也会对比其他语言进行介绍,这一节的重点内容如下:协议protocol代码块block分类category协议protocol在转载 2015-07-13 15:14:43 · 467 阅读 · 0 评论 -
iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
--系统应用与系统服务iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录、微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等。今天将和大家一起学习如何使用系统应用、使用系统服务:调用系统应用使用系统服务短信与邮件通讯录蓝牙社交Game Center应用内购买iCloudPassbook目 录系统应用在开发某转载 2015-07-13 15:19:34 · 781 阅读 · 0 评论 -
iOS开发系列--数据存取
概览在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库。例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档、plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录。当然,文件存储并不作为本转载 2015-07-13 14:50:42 · 367 阅读 · 0 评论 -
iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
概览iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计。今天我们就针对iOS的触摸事件(手势操作)、运动事件、远程控制事件等展开学习:iOS事件简介触摸事件手势识别运动事件远程控制事件iOS事件在iOS中事件分为三类:触摸事件:通过触摸、手势进行触发(例如手指点击、缩放)转载 2015-07-13 15:05:06 · 608 阅读 · 0 评论 -
IOS开发系列—Objective-C之Foundation框架
概述我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架Foundation,今天的主要内容有:Foundation概述常用结构体转载 2015-07-13 15:12:33 · 494 阅读 · 0 评论 -
IOS开发系列--Objective-C之KVC、KVO
概述由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性:键值编码KVC键值监听KVO键值编码KVC我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对转载 2015-07-13 15:13:33 · 294 阅读 · 0 评论 -
IOS开发系列—Objective-C之内存管理
概述我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题的,但在OjbC中并没有类似的垃圾回收机制,因此它的内存管理就需要由开发人员手动维护。今天将着重转载 2015-07-13 15:15:39 · 417 阅读 · 0 评论 -
iOS开发系列--通知与消息机制
概述在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下如何转载 2015-07-13 15:17:16 · 446 阅读 · 0 评论 -
iOS开发系列--UITableView全面解析
--UIKit之UITableView概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信、QQ、新浪微博等软件基本上随处都是UITableView。当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论。今天的主要内容包括:基本介绍数据源代理性能优化UITableVi转载 2015-07-13 15:21:21 · 329 阅读 · 0 评论 -
CocoaPods安装和使用教程:出处:http://code4app.com/article/cocoapods-install-usage
目录CocoaPods是什么?如何下载和安装CocoaPods?如何使用CocoaPods?场景1:利用CocoaPods,在项目中导入AFNetworking类库场景2:如何正确编译运行一个包含CocoPods类库的项目CocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其转载 2015-07-08 16:00:17 · 563 阅读 · 0 评论 -
iOS开发系列--地图与定位
概览现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。例如你到了一个陌生的地方想要查找附近的酒店、超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品。总之,目前地图和定位功能已经大量引入到应用开发中。今天就和大家一起看转载 2015-07-10 19:06:49 · 523 阅读 · 0 评论 -
关于uitableviewcell的accessoryType属性
对于 UITableViewCell 而言,其 accessoryType属性有4种取值:UITableViewCellAccessoryNone,UITableViewCellAccessoryDisclosureIndicator,UITableViewCellAccessoryDetailDisclosureButton,UITableViewCellAccessoryChe转载 2015-07-20 17:47:20 · 459 阅读 · 0 评论 -
iOS开发的一些奇巧淫技
TableView不显示没内容的Cell怎么办?类似这种,我不想让下面那些空的显示.很简单.[objc] view plaincopyself.tableView.tableFooterView = [[UIView alloc] init]; 试过的都说好.加完这句之后就变成了这样.转载 2015-07-21 17:42:53 · 290 阅读 · 0 评论 -
Reachability
iOS SDK: Detecting Network Changes with Reachabilityby Bart JacobsMost mobile applications access the web for some reason or another. This implies that these applications will - or should转载 2015-09-08 16:08:49 · 491 阅读 · 0 评论 -
Core Animation 简明系列教程
iOS Core Animation 简明系列教程 看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大。自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽快修改。1.什么是Core Animation?它是一套包含图形绘制,投影,动画的OC类集合。它就是一个framework。通过CoreAnimation提供的接口,你可以方转载 2015-12-28 10:34:15 · 429 阅读 · 0 评论 -
iOS Core Animation (本人写的源码)
//// ViewController.h// Animation_byEpisode//// Created by Wangyun on 15/7/9.// Copyright (c) 2015年 com.epsiode. All rights reserved.//#import @interfac原创 2015-12-28 10:39:13 · 396 阅读 · 0 评论 -
基于Core Animation的KTV歌词视图的平滑实现
KTV歌词视图,只要去过KTV的的朋友一定不会陌生。我们先来看一下最终的效果,再一步步说明唱吧歌词视图的演进。想把事件事情说得清清楚楚的确很难,有很多tricky的地方;另外毕竟不是open source的,只能给大家挑重点分享一下实现的过程和思路。歌词视图剖析一个体验良好的歌词视图,由以下方面组成,这也是我们的设计目标:有倒计时功能,歌者可以提前作演唱的准备转载 2015-12-29 15:45:22 · 501 阅读 · 0 评论 -
使用CALayer的Mask实现注水动画效果
Core Animation一直是iOS比较有意思的一个主题,使用Core Animation可以实现非常平滑的炫酷动画。Core animtion的API是较高级的封装,使用便捷,使得我们免于自己使用OpenGL实现动画。本文主要介绍如何使用CALayer的mask实现一个双向注水动画(姑且这么叫吧)。了解CALayer的mask转载 2015-12-29 15:46:29 · 433 阅读 · 0 评论 -
详解 CALayer 和 UIView 的区别和联系
1.首先UIView可以响应事件,Layer不可以.UIKit使用UIResponder作为响应对象,来响应系统传递过来的事件并进行处理。UIApplication、UIViewController、UIView、和所有从UIView派生出来的UIKit类(包括UIWindow)都直接或间接地继承自UIResponder类。在 UIResponder中定义了处理各种事件和事件传递的转载 2015-12-29 15:49:19 · 315 阅读 · 0 评论 -
你给我解析清楚,都有了CALayer了,为什么还要UIView
“你给我解析清楚,都有了CALayer了,为什么还要UIView!” 听到这种问题,是不是愣住了。WTF!这都是什么乱起八糟的问题。UIView继承自UIResponder,主要特点是可以响应触摸事件。而CALayer实际的图层内容管理。大家干的的事情不一样,是两个东西,大家的存在互不影响,理所当然。但仔细想想,真的是步步高点读机,So Easy吗?在细细揣摩背后的用意的时转载 2015-12-29 16:06:49 · 262 阅读 · 0 评论 -
ReactiveCocoa2 源码浅析
开车不需要知道离合器是怎么工作的,但如果知道离合器原理,那么车子可以开得更平稳。ReactiveCocoa 是一个重型的 FRP 框架,内容十分丰富,它使用了大量内建的 block,这使得其有强大的功能的同时,内部源码也比较复杂。本文研究的版本是2.4.4,小版本间的差别不是太大,无需担心此问题。 这里只探究其核心 RACSignal 源码及其相关部分。本文不会详细解释里面的代码,重点在于转载 2015-12-30 09:18:00 · 335 阅读 · 0 评论 -
iOS崩溃调试的使用和技巧总结
在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题。简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的。获取崩溃信息在iOS中获取崩溃信息的方式有很多,比较常见的是使用友盟、百度等第三方分析工具,或者自己收集崩溃信息并上传公司服务器。下面列举一些我们常用的崩溃分析方式:转载 2015-12-31 11:36:50 · 283 阅读 · 0 评论 -
谈谈App应用程序的生命周期
对于iOS应用程序,关键的是要知道你的应用程序是否正在前台或后台运行。由于系统资源在iOS 设备上较为有限,一个应用程序必须在后台与前台有不同的行为。操作系统也会限制你的应用程序在后台的运行,以提高电池寿命,并提高用户与前台应用程序的体 验。当应用程序在前台和后台之间切换时,操作系统将会通知您的应用程序。你可以通过这些通知来修改你的应用程序的行为。对于i转载 2016-01-18 20:55:14 · 634 阅读 · 0 评论 -
Object-C 类,对象,运行时,isa
类Class: typedef struct objc_class * Class; 从Class的定义可以看出,它是一个 objc_class 结构类型的指针,objc_class又是什么呢? struct objc_class{ struct objc_class* isa; struct objc_class* super_翻译 2015-12-17 17:15:17 · 346 阅读 · 0 评论 -
layoutSubviews总结
ios layout机制相关方法- (CGSize)sizeThatFits:(CGSize)size;- (void)sizeToFit;——————- (void)layoutSubviews;- (void)layoutIfNeeded;- (void)setNeedsLayout;——————–- (void)原创 2015-12-17 13:55:54 · 268 阅读 · 0 评论 -
Objective-C Block的实现
前言这里 有关于 block 的 5 道测试题,建议你阅读本文之前先做一下测试。先介绍一下什么是闭包。在 wikipedia 上,闭包的定义) 是:In programming languages, a closure is a function or reference to a function together with a referencing environ转载 2015-12-17 17:25:45 · 558 阅读 · 0 评论 -
UIView.frame的骗局
如果你刚刚开始接触IOS编程, 刚刚接触UIKit, 肯定会被 frame, bounds, center, layer.anchorPoint, layer.position 这些乱七八糟得属性折腾得心烦意乱. 并且,聪明的你肯定早就发现,这些属性并不是独立的, 比如frame和bounds, 你改变一个必然会影响另一个, 这就更加大了理解难度. 我想通过这篇浅显的日志,和一个简单的Demo来表转载 2016-01-04 10:15:59 · 312 阅读 · 0 评论 -
彻底理解position与anchorPoint
引言相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与position有什么关系?我也迷惑过,找过网上的教程,大部分都是复制粘贴的,有些是翻译的文章但很有问题,看得似懂非懂,还是自己写代码彻底弄懂了,做点笔记吧。每一个UIVie转载 2016-01-04 10:18:26 · 288 阅读 · 0 评论 -
CAlayer层的属性
一、position和anchorPoint1.简单介绍CALayer有2个非常重要的属性:position和anchorPoint@property CGPoint position;用来设置CALayer在父层中的位置以父层的左上角为原点(0, 0) @property CGPoint anchorPoint;称为“定位点”、“锚点”决定着CALayer身上转载 2016-01-04 10:19:57 · 224 阅读 · 0 评论 -
NSTimer简介
NSTimer的使用方法1、初始化+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;+ (NSTimer *)scheduledTimerWithTimeI转载 2016-01-04 11:16:51 · 230 阅读 · 0 评论 -
NSTimer你真的会用了吗??
看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗? 我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到runloop中才会起作用吗?你知道NSTimer会并不是准确的按照你指定的时间触发的吗?你知道NSTimer就算添加到runloop了也不一定会按照你想象中的那样执行吗? 如果上面提转载 2016-01-04 11:18:07 · 268 阅读 · 0 评论 -
NSTimer
NSTimerfire我们先用 NSTimer 来做个简单的计时器,每隔5秒钟在控制台输出 Fire 。比较想当然的做法是这样的:12345678910111213141516@interface DetailV转载 2016-01-04 11:54:50 · 221 阅读 · 0 评论 -
刨根问底Objective-C Runtime
前言关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime译文地址为: http://blog.cocoabit.com/blog/2014/10/06/yi-li-jieobjective-cruntime/Objective-C Runtime源码是开源的,下载地址为: http://ope转载 2016-01-21 10:33:10 · 490 阅读 · 0 评论 -
iOS开发new与alloc/init的区别
内存管理 范围:任何继承了NSObject 的对象,对基本数据类型无效 原理:每个对象内部都保存了一个与之相关联的整数,称为引用计数器(auto reference count)每当使用 alloc、new或者copy创建一个对象时,对象的引用计数器被设置为1给对象发送一条retain消息(即调用retain方法),可以使引用计数器转载 2016-01-21 10:37:14 · 929 阅读 · 0 评论