iOS高级
文章平均质量分 81
Shicuf
兵贵神速!
展开
-
iOS 开发之定时器
第一种:用CADisplayLink可以实现不停重绘。例子:CADisplayLink* gameTimer;gameTimer = [CADisplayLink displayLinkWithTarget:self selector:@selecto转载 2015-01-23 22:45:16 · 319 阅读 · 0 评论 -
iOS 之UUID和UDID
一.UDID(Unique Device Identifier) UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识. 在很多需要限制一台设备一个账号的应用中经常会用到,在Symbian时代,我们是使用IMEI作为设备的唯一标识的,可惜的是Apple官方不允许开发者获得设备的IMEI. ios5 sdk中的获取方法:转载 2014-12-24 11:05:47 · 453 阅读 · 0 评论 -
iOS 之GCD和Block
1。GCD之dispatch queuehttp://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.html2。iOS中GCD的魔力http://blog.csdn.net/favormm/article/details/64532603。官方 ,内容真的很多http://developer转载 2014-12-24 10:58:52 · 404 阅读 · 0 评论 -
iOS 之Core Data持久化存储
iOS教程:Core Data数据持久性存储基础教程其实最近更多的是在写这篇文章《iOS教程:使用持久性数据Core Data》,这篇是《iOS开发教程:Storyboard全解析-第一部分》这篇的后续,但是目前还没有完成,先放出一个持久性数据存储的教程以供参考。这其实是一篇翻译文章,英文的原文见这里。我翻译的过程中改变了一些内容以便适应我们中国人的口味,下面请看教程:就像我一直说的,转载 2014-12-24 10:52:54 · 319 阅读 · 0 评论 -
iOS 之NSTimer倒计时
今天在CocoaChina上面看到有人在问倒计时怎么做,记得以前在看Iphone31天的时候做过一个,今天翻出来运行不了了,原因是我的Iphone SDK升级到3.1了,以前使用的是2.2.1,在2.2.1里面是可以使用NSCalendarDate的,但是在3.1里面不能够使用,怎么办,只好用NSTimer了,最后还是给实现了。代码也比较简单,开始运行viewDidLoad的时候加载 [NSTim转载 2014-12-24 10:48:10 · 278 阅读 · 0 评论 -
iOS 之调用地图、电话、邮件和短信
-(IBAction)openMaps { // Where is Apple on the map anyway? NSString* addressText = @"1 Infinite Loop, Cupertino, CA 95014"; // URL encode the spaces addressText = [addressText str转载 2014-12-24 10:46:33 · 473 阅读 · 0 评论 -
iOS 开发之ASIHttpRequest(二)
向服务器端上传数据ASIFormDataRequest ,模拟 Form表单提交,其提交格式与 Header会自动识别。没有文件:application/x-www-form-urlencoded有文件:multipart/form-dataASIFormDataRequest *request = [ASIFormDataRequest requestWi转载 2014-12-24 00:16:52 · 248 阅读 · 0 评论 -
iOS 开发之ASIHttpRequest(一)
官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码,以及获取到相关的资料。之前看了篇关于ASIHttpRequest得文章,写的不错,今天转载过来。ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的API完成复杂的功能,如:异步请求,队列请求,GZIP压转载 2014-12-24 00:05:42 · 305 阅读 · 0 评论 -
iOS 中的本地推送实现
1、增加一个本地推送//设置20秒之后 NSDate *date = [NSDate dateWithTimeIntervalSinceNow:20]; //chuagjian一个本地推送 UILocalNotification *noti = [[[UILocalNotification alloc] init] autorelease]; if (noti转载 2014-12-23 23:35:55 · 267 阅读 · 0 评论 -
MRC转成ARC的三种方法
回 到正题,我们讨论的是ARC,关于REST API和XML解析的技术细节就暂时先忽略吧..整个程序都是用MRC来进行内存管理的,首先来让我们把这个demo转成ARC吧。基本上转换为ARC意 味着把所有的retain,release和autorelease关键字去掉,在之前我们明确几件事情:* Xcode提供了一个ARC自动转换工具,可以帮助你将源码转为ARC* 当然你也可以自己动手完成A原创 2014-12-23 23:32:33 · 682 阅读 · 0 评论 -
iOS 之NSPredicate
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。定义(最常用到的方法):[cpp] view plaincopyNSPredicate *ca = [NSPredicate predicateWithFormat:(NSString转载 2014-12-24 13:53:05 · 303 阅读 · 0 评论 -
iOS 之Core Data轻量数据升级
如果IOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表、字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下:1.选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel2.设置当前版本转载 2014-12-24 13:51:24 · 259 阅读 · 0 评论 -
iOS 之屏幕旋转(iOS5和iOS6)
在iOS5.1 和 之前的版本中, 我们通常利用 shouldAutorotateToInterfaceOrientation: 来单独控制某个UIViewController的旋屏方向支持,比如:- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation转载 2014-12-24 11:57:02 · 331 阅读 · 0 评论 -
iOS 之邮箱正则表达式
1...代码用了断言, 如果是正则达人,那更容易理解。BOOL NSStringIsValidEmail(NSString *checkString) { NString *stricterFilterString = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+//.[A-Za-z]{2,4}"; NSString转载 2014-12-24 11:08:51 · 379 阅读 · 0 评论 -
iOS 之日期/时间段转换
//将时间戳转换为时间 1274940724--2010年05月27日14时12分04秒-(NSString *)transferTimeStamp:(NSString *)timeStamp{ NSString *failed = @"read time failed length if (timeStamp.length >=转载 2014-12-24 11:16:22 · 383 阅读 · 0 评论 -
iOS 之UIActionSheet+UIToolBar+UIDatePickerView
//日期弹窗视图@interface WalletDateActionView : WalletActionView{ NSDate *actionDate; NSDate *actionMaxDate; NSDate *actionMinDate; id delegate; @private UIToolbar *_topBar;转载 2014-12-24 11:20:48 · 400 阅读 · 0 评论 -
iOS 之图片拖拽、捏合、双击缩放以及保存到相册
1.图片拖拽,使用UIScrollView就可以实现,上面添加一个UIImageView2.捏合和双击缩放通过手势实现,难点在于缩放效果的准确定位3.保存问题比较简单下面直接上代码:.h文件:#import #import "AsyncImageView.h"@interface DetailPopStarView : UIView@property (nonato原创 2015-01-05 17:08:27 · 944 阅读 · 0 评论 -
iOS 之Quartz2D简介
Quartz 2D编程指南是论坛会员德鲁伊翻译的国外的Quartz 2D一系列学习资料,供大家参考Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境。我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、透明层、颜色管理、反锯齿、PDF文档生成和PDF元数据访问。在需要的时候,Quartz 2D还可以借助图形硬件的功原创 2015-02-10 14:59:29 · 402 阅读 · 0 评论 -
iOS 之音乐播放
音乐的播放一、简单说明 音乐播放用到一个叫做AVAudioPlayer的类,这个类可以用于播放手机本地的音乐文件。注意: (1)该类(AVAudioPlayer)只能用于播放本地音频。 (2)时间比较短的(称之为音效)使用AudioServicesCreateSystemSoundID来创建,而本地时间较长(称之为音乐)使用AVAudioPlayer类转载 2014-12-26 23:40:39 · 354 阅读 · 0 评论 -
iOS 之物理仿真引擎-UIDynamic简介(一)
一、简单介绍1.什么是UIDynamicUIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象如:重力、弹性碰撞等现象 2.物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果提高了转载 2014-12-26 23:25:13 · 685 阅读 · 0 评论 -
iOS 之物理仿真引擎-UIDynamic简介(二)
一、重力行为说明:给定重力方向、加速度,让物体朝着重力方向掉落1.方法(1)UIGravityBehavior的初始化 - (instancetype)initWithItems:(NSArray *)items; item参数 :里面存放着物理仿真元素 (2)UIGravityBehavior常见方法 - (void)ad转载 2014-12-26 23:26:43 · 803 阅读 · 0 评论 -
iOS 之音效播放
音效的播放一、简单介绍简单来说,音频可以分为2种(1)音效又称“短音频”,通常在程序中的播放时长为1~2秒在应用程序中起到点缀效果,提升整体用户体验(2)音乐 比如游戏中的“背景音乐”,一般播放时间较长框架:播放音频需要用到AVFoundation.framework框架 二、音效的播放1.获得音效文件的路径转载 2014-12-26 23:39:49 · 301 阅读 · 0 评论 -
iOS 之物理仿真引擎-UIDynamic简介(三)
iOS开发拓展篇—UIDynamic(捕捉行为)一、简介可以让物体迅速冲到某个位置(捕捉位置),捕捉到位置之后会带有一定的震动UISnapBehavior的初始化 - (instancetype)initWithItem:(id )item snapToPoint:(CGPoint)point; UISnapBehavior常见属性转载 2014-12-26 23:28:43 · 315 阅读 · 0 评论 -
iOS 之UIImageView实现图片的移动和缩放
因为种种原因,需要在iphone应用中实现图片查看功能,由于iphone屏幕支持多点触摸,于是是想到用“手势”来实现图片的实时缩放和移动。借鉴无所不在的internet网络资料之后,终于实现此一功能,过程如下。一、 首先实现原图显示(不缩放)新建MoveScaleImageView类,继承uiview。用于加载一个UIImage。它有两个主要的成员,一个UIImage对象用于指定转载 2014-12-25 15:45:44 · 4366 阅读 · 0 评论 -
iOS 之图片上传处理
从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePickerController类来和用户交互。使用UIImagePickerController和用户交互,我们需要实现2个协议。View Code代码如下复制代码#pragma mark 从用户相册获取活动图片- (voi转载 2014-12-25 10:10:01 · 275 阅读 · 0 评论 -
iOS 之GCD
1. GCD: 异步执行任务的技术之一,一般是将应用程序中记述的线程管理用代码在系统级实现,由于是系统级的管理,这样的话将有更好的线程效率。2. 使用方法如下:dispatch_async(queue, ^{ // 想执行的任务});开发者要做的只是定义想执行的任务并追加到适当的Dispatch Queue中。3. 线程(Thread): 1个CPU执转载 2014-12-24 14:08:13 · 267 阅读 · 0 评论 -
C++和Objective-C混编(官方文档翻译)
苹果的Objective-C编译器允许用户在同一个源文件里自由地混合使用C++和Objective-C,混编后的语言叫Objective-C++。有了它,你就可以在Objective-C应用程序中使用已有的C++类库。 在Objective-C++中,可以用C++代码调用方法也可以从Objective-C调用方法。在这两种语言里对象都是指针,可以在任何地方使用。例如,C++类可以使转载 2014-12-24 11:33:09 · 241 阅读 · 0 评论 -
iOS 之CALayer和UIView的关系
CALayer属于Core Animation部分的内容,比较重要而不太好理解。1. UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView本身更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等,实际上内部都是在访问转载 2014-12-24 11:27:54 · 212 阅读 · 0 评论 -
iOS 之摄像头/相册选取图片
iphone中图像通常存储在4个地方【相册、应用程序包、沙盒、Internet】,通过这4个源,我们就可以存取应用图片。相册 iphone的相册包含摄像头胶卷+用户计算机同步的部分照片。用户可以通过UIImagePickerController类提供的交互对话框来从相册中选择图像。但是,注意:相册中的图片机器路径无法直接从应用程序访问,只能通过终端用户去选择和使用相册图片转载 2014-12-24 11:12:12 · 309 阅读 · 0 评论 -
关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。 关联是基于关键字的,因此,我们可以为任何对转载 2014-12-24 14:04:40 · 276 阅读 · 0 评论 -
iOS 之NSURLConnection和NSURLSession
说到 iOS 7 和 Mac OS X 10.9 Mavericks 的显著变化,其中一个就是Foundation框架中URL加载系统的优化。 此时可能有人正沉浸在Apple的网络基础架构,我想在这里分享一下我对这些新APIs的看法,并展示这些新APIs如何改变我们构建应用程序的方式,以及这些它们在API设计理念演变中的意义。 作为Core Foundation / CFNet转载 2014-12-24 14:03:03 · 345 阅读 · 0 评论 -
iOS 之地图上绘制运动轨迹
iOS中的MapKit集成了google地图api的很多功能加上iOS的定位的功能,我们就可以实现将你运行的轨迹绘制到地图上面。这个功能非常有用,比如快递追踪、汽车的gprs追踪、人员追踪等等。这篇文章我们将使用Map Kit和iOS的定位功能,将你的运行轨迹绘制在地图上面。实现 在之前的一篇文章:iOS开发之在google地图上显示自己的位置中描述了如何在地图上显示自己的位置,如果我们将转载 2014-12-24 11:54:07 · 1532 阅读 · 0 评论 -
iOS 之NSThread
iPhone 中的线程应用并不是无节制的,官方给出的资料显示iPhone OS下的主线程的堆栈大小是1M,第二个线程开始都是512KB。并且该值不能通过编译器开关或线程API函数来更改。 只有主线程有直接修改UI的能力。一、 NSOperation和NSOperationQueue 1、一个继承自 NSOperation的操作类,该类的实现中必须有 - (void)m转载 2014-12-24 11:23:44 · 231 阅读 · 0 评论 -
iOS 之发送邮件的常用方法
#pragma mark - email - (void)showMailPicker{ Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if (mailClass != nil) { if ([mailClass canSendMail]) {转载 2014-12-24 11:17:42 · 302 阅读 · 0 评论 -
iOS 之正则表达式
“正则表达式”描述在搜索文本正文时要匹配的一个或多个字符串。该表达式可用作一个将字符模式与要搜索的字符串相匹配的模板。正则表达式包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。特殊字符下表包含了单字符元字符的列表以及它们在正则表达式中的行为。说明若要匹配这些特殊字符之一,必须首先转义字符,即,转载 2014-12-24 11:15:02 · 345 阅读 · 0 评论 -
iOS 之连续动画
UIImageView* animView= [[UIImageView alloc] initWithFrame:self.view.frame]; animView.animationImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"01.g转载 2014-12-24 11:07:30 · 329 阅读 · 0 评论 -
iOS 之Block详解
Block可以帮助我们组织独立的代码段,并提高复用性和可读性。iOS4在UIKit中引入了该特征。超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识。Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始。int num1 = 7; int(^aBlock)(int) = ^)int num2) {转载 2014-12-24 11:01:41 · 329 阅读 · 0 评论 -
iOS 之通讯录联系人
// Do any additional setup after loading the view CFErrorRef myError = NULL; ABAddressBookRef myAddressBook = ABAddressBookCreateWithOptions(NULL, &myError);// APLViewController *转载 2014-12-24 10:49:40 · 333 阅读 · 0 评论 -
iphone开发中的多线程:NSThread、NSOperation、GCD
iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:1, NSThread;2, NSOperation;3, Grand Central Dispatch (GCD) (iOS4 才开始支持)下面简要说明这三种不同范式:Thread 是这三种范式里面相对轻量级的转载 2014-12-20 13:59:04 · 459 阅读 · 0 评论 -
获取网络图片的尺寸大小
在iOS开发过程中经常需要通过网络请求加载图片,有时,需要在创建UIImageView或UIButton来显示图片之前需要提前知道图片的尺寸,根据图片尺寸创建对应大小的控件。但是对于网络图片来说,要想通过最优的方法获得尺寸就略微有点困难,大体思路有这么几种: 1.通过服务器处理。即在下行图片路径时拼接该图片的宽高。这种方法最简单,避免了不必要的网络请求,只需要从URL中截取即可。原创 2014-12-20 11:14:21 · 3333 阅读 · 0 评论