iOS
文章平均质量分 89
工程师WWW
R
展开
-
Mixing Objective-C, C++ and Objective-C++: an Updated Summary
Quite some time ago, I ran into the situation of including a C++ library in an Objective-C project. I failed to find any sensible documentation on the subject, so I came up with a solution myself and原创 2012-08-24 16:55:52 · 1943 阅读 · 0 评论 -
苹果推送通知服务(APNs)编程
iPhone 对于应用程序在后台运行有诸多限制(除非你越狱)。因此,当用户切换到其他程序后,原先的程序无法保持运行状态。对于那些需要保持持续连接状态的应用程序(比如社区网络应用),将不能收到实时的信息。为解决这一限制,苹果推出了APNs(苹果推送通知服务)。APNs 允许设备与苹果的推送通知服务器保持常连接状态。当你想发送一个推送通知给某个用户的iPhone上的应用程序时,你可以使用 AP原创 2012-10-31 11:51:44 · 1631 阅读 · 1 评论 -
Reachability 网络编程总结
一:确认网络环境3G/WIFI 1. 添加源文件和framework 开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。 Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。要在应用程序程序中使用Reachability,首先要完成如下两部:原创 2012-04-09 16:38:24 · 1998 阅读 · 0 评论 -
iOS下UILocalNotification的使用
Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notification种类,本地和远程。本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地Notification对象加入到系统Notification管理机制原创 2012-04-16 21:47:35 · 1729 阅读 · 1 评论 -
How to use Blocks with iOS
Blocks are what help organise your code into independent snippets of code, optimised for re-use and readability. They have been introduced into our UIKit world in iOS 4, along with over 100 Apple AP原创 2012-10-24 17:04:11 · 1300 阅读 · 1 评论 -
objective-c block 详解
Block Apple 在C, Objective-C, C++加上Block這個延申用法。目前只有Mac 10.6 和iOS 4有支援。Block是由一堆可執行的程式組成,也可以稱做沒有名字的Function (Anonymous function)。如果是Mac 10.6 或 iOS 4.0 之前的平台可以利用 http://code.google.com/p/plblocks/ 這個pr原创 2012-10-24 17:10:38 · 3009 阅读 · 0 评论 -
IOS内存管理 ARC技术概述 .
ARC(Automatic Reference Counting )技术概述Automatic Reference Counting (ARC) 是一个编译期的技术,利用此技术可以简化Objective-C编程在内存管理方面的工作量。这里我把此技术翻译为自动内存计数器管理技术,下图是使用和不使用此技术的Objective-C代码的区别。ARC技术是随着XCode4.2一起发原创 2012-10-24 17:40:00 · 2325 阅读 · 1 评论 -
手把手教你ARC——ARC入门和使用
本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论。请不要将本文的部分或全部内容用于商用,谢谢合作。本文适合人群:对iOS开发有一定基础,熟悉iOS开发中内存管理的Reference Counting机制,对ARC机制有听闻很向往但是一直由于种种原因没有使用的童鞋。本文将从ARC机理入手对这个解放广大iOS开发者的伟大机制进行一个剖析,并逐步引导原创 2012-10-24 18:05:52 · 7499 阅读 · 1 评论 -
iOS内存警告
我们都知道在移动设备上很多资源都是比较紧缺的,尤其时内存,通常都比较小,iPhone4也才只有512MB。而且IOS4.0以后还支持了多任务,这个问题就更加突出了。因此我们在平时设计程序的时候要注意管理好内存,减少不必要的开销,谨防泄露。 由于写的一个小项目存在严重的内存泄漏,程序经常运行时间不长就退出了,调试时候发现运行过程中接受到系统的Memry warning level 1几次以原创 2012-10-25 12:26:22 · 10431 阅读 · 0 评论 -
如何在UIAlertView中显示进度条
今天这个问题是,在一个iPhone程序中,我要在后台做大量的数据处理,希望在界面上显示一个进度条(Progress Bar)使得用户了解处理进度。这个进度条应该是在一个模态的窗口中,使界面上其他控件无法被操作。怎么用最简单的方法来实现这个功能?UIAlertView是一个现成的模态窗口,如果能把进度条嵌入到它里面就好了。 以下内容适用于iOS 2.0+。我们知道,如果要显示原创 2012-11-02 18:05:30 · 1566 阅读 · 0 评论 -
由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系说起
对于iphone开发人员来说,内存管理是极为重要的技巧,哪怕程序的功能再强大,设计再漂亮,如果内存控制不好,也难逃程序莫名退出的噩运,这与网页开发是完全不同的。内存控制里面有很多门道,在这里分析一下 viewDidUnload 和 dealloc 的区别,关于这两者的区别的文章很多,但是大都是摘抄和翻译官方文档,有的也只是简单的说两句,并没有详细说出两者具体的区别。在了解两者之间的原创 2012-11-06 12:20:04 · 3705 阅读 · 0 评论 -
iOS已发布应用中对异常信息捕获和处理
iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的。 iOS提供了异常发生的处理API,我们在程序启动的时候可以添加这样的Handler,这样的程序发生异常的时候就可以对这一部分的信息进行必要的处理,适时的反馈给开发者。 不足的地方是,并不是所有的程序崩溃都是由于发生可以捕捉的异常原创 2012-10-30 11:48:02 · 1384 阅读 · 0 评论 -
iOS Block学习
iOS4已经直接支持blocks,很有必要学习一下。在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline的,并且它对局部变量是只读的。Blocks的定义: int (^myBlock) (int a,int b)原创 2012-10-24 17:16:40 · 7031 阅读 · 3 评论 -
objC编程规范
写objC程序有一段时间了,接触的头几天便到处找编程规范,至今除了google和apple的规范外,其它的也零星见过一些.老实说,google和apple的规范均不怎么样,很多场景都没有解决方案,并且两者也有冲突的地方.我综合这些规范,修改和补充如下,后续不断增加:1.interface用I前缀,protocal用P前缀,确实是delegate则用delegate作后缀.2.protoco原创 2012-08-15 10:06:53 · 1552 阅读 · 0 评论 -
iPhone文件读写
创建与删除://创建文件管理器NSFileManager* fileManager = [NSFileManager defaultManager];//获取路径NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);//取出需要的路径N原创 2012-09-14 10:59:16 · 2208 阅读 · 1 评论 -
Core Foundation 框架
Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:群体数据类型 (数组、集合等)程序包字符串管理日期和时间管理原始数据块管理偏好管理URL及数据流操作线程和RunLoop原创 2012-07-13 18:02:07 · 13186 阅读 · 0 评论 -
Using iOS 4′s IBOutletCollection
Cocoa has long defined the IBAction and IBOutlet keywords. These keywords provide metadata hints to Interface Builder providing it some understanding of your underlying code so you can graphically wir原创 2012-09-19 09:47:04 · 2380 阅读 · 0 评论 -
在 iPhone/iPad中随意修改数字键盘按钮
iPhone 的键盘,特别是数字键盘,往往不能满足程序的输入需要。最典型的例子就是在数字键盘上添加一个“.”,用来输入小数点。安装 iPhone SDK 官方的观点,如果要使用小数点键盘,那只好使用数字和符号键盘,但那样没个按键很小,且不需要的按键太多。二、现有方案针对这种情况,最早的解决方案,请参考这里:http://www.cnblogs.com/mac_arthur/arch原创 2012-09-20 11:54:10 · 3335 阅读 · 0 评论 -
textField被虚拟键盘挡住的3种解决方法
经常会遇到以下情况,textField被虚拟键盘挡住的情况,解决。RootViewController.h 中:#import @interface RootViewController : UIViewController {UITextField *textField1;UITextField *textField2;}@property (nonatomic,retain) UI原创 2012-07-03 21:02:49 · 2221 阅读 · 0 评论 -
UITableView中多个UITextField时UITableView的滚动和键盘的隐藏
UITableView中多个UITextField时,编辑textfield 时 UITableView 自动滚动到当前textfield 可见的行即不被键盘遮住,及键盘的显示和隐藏的问题1、 采用 NSNotificationCenter 方式在 .h 文件中 添加两个变量int keyboardHeight;BOOL keyboardIsShowing;@p原创 2012-09-20 15:27:23 · 3825 阅读 · 2 评论 -
如何让IOS应用从容地崩溃
虽然大家都不愿意看到程序崩溃,但可能崩溃是每个应用必须面对的现实,既然崩溃已经发生,无法阻挡了,那我们就让它崩也崩得淡定点吧。IOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler 用来做异常处理,但功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误就无能为力了,因为这种错误它抛出的是Signal,所以必须要专门做Signal处理原创 2012-10-13 17:31:45 · 1542 阅读 · 0 评论 -
delegate和Notification的区别
delegate针对one-to-one关系,并且reciever可以返回值给sender;notification 可以针对one-to-one/many/none,reciever无法返回值给sender;所以,delegate用于sender希望接受到reciever的某个功能反馈值,notification用于通知多个object某个事件。delegat原创 2012-10-29 16:46:47 · 4496 阅读 · 0 评论 -
CFNetwork简介
CFNetwork ConceptsCFNetwork is a low-level, high-performance framework that gives you the ability to have detailed control over the protocol stack.It is an extension to BSD sockets, the standard原创 2012-11-08 10:30:53 · 3195 阅读 · 0 评论 -
自绘控件:自定义Tab Bar控件
用户的需求千奇百怪,总是让你不得不对iPhone一些控件的外观或功能做一些改变。众所周知,苹果自带的控件可定制性着实很差,这着让人很恼火,却又别无他法。幸好有网络的存在,我们可以找到许多别人已经做好的控件。CocoaChina会员 “jordenwu”做了一个自定义的Tab Bar控件,笔者的代码也是在jordenwu的基础上修改来的。修改的目的有两个:一、jordenwu把许多本来应该在TabB原创 2012-10-31 11:50:58 · 2158 阅读 · 2 评论 -
iOS6下关于屏幕旋转的控制
之前做了一个应用,但由于整应用界面个都是竖屏,不允许横屏,所以一直没有关注这个,昨天开发一个图片预览的类库(类似系统的查看图片),其中一个特性当然需要支持横屏,所以就压找了一下资料,之前已经听闻在屏幕控制上,iOS6上有了比较坑爹的变化。比如,让视频支持正常坚屏和两种横屏,兼容的做法是:12345678910111213原创 2012-12-17 22:41:18 · 3630 阅读 · 1 评论 -
Working with multiple data-sources in UITableView
Using this post, I am going to explain “working with multiple data-sources in UITableView”.Expected Output of this tutorial is demonstrated by following images.Step 1 : load data into your arr原创 2012-12-19 17:37:10 · 1182 阅读 · 0 评论 -
iOS中的数据持久化方式
属性列表、对象归档、SQLite3和Core Data1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults standardUserDefaults]就够用了@interface User : NSObject @property (nonatomic, assign) NSInteger userID;@prope原创 2013-04-02 10:30:53 · 1565 阅读 · 0 评论 -
Editors for cocos2d-x Texture,Tilemap,Particle,Action,Level etc
Action EditorSpriteHelper & LevelHelperAuthor's blogDownload from Mac StoreSpriteHelperFreeSpriteHelperLevelHelper"Video"Youtube: http://www.youtube.com/watch?v=YoVMSuwsATkYouku: htt原创 2012-11-26 22:49:44 · 3007 阅读 · 0 评论 -
cocos2d-x-2.0 新增UI的使用方法
cocos2d-x-2.0新增加了几个UI控件,这里我介绍下常用的这几个UI控件(CCControlSlider、CCControlSwitch、CCControlColourPicker、ListView)的使用方法。一、CCControlSlider[cpp] view plaincopy// Slider原创 2012-11-25 20:25:59 · 1946 阅读 · 0 评论 -
Cocos2d-x Application Wizard for Visual Studio User Guide
Cocos2d-x Application Wizard for Visual Studio User Guide0. Overview1. Frist of all, get the cocos2d-x source code from github2. Build Cocos2d-x SolutionWin323. Install the cocos2d原创 2012-11-22 17:40:44 · 2121 阅读 · 0 评论 -
OpenGL ES与OpenGL 的区别
OpenGL ES 概述本文对 OpenGL ES 做了综合性的介绍,包括 OpenGL ES 的由来、主要版本及其特点、OpenGL ES 与 OpenGL 的主要区别等等。 简介2OpenGL_ES是khronos协会从OpenGL裁剪定制而来的,专为手机,游戏机等嵌入式设备而设计。它的接口其实和 Open GL很类似。OpenGL_ES有几原创 2012-08-04 22:14:38 · 10144 阅读 · 0 评论 -
OpenGL ES2.0 – Iphone开发指引
免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作! ps:非常感谢skingTree为我们提供的这篇翻译教程,感谢yy、小狼、北方加入我的教程翻译团队,谢谢你们!教程截图: OpenGL ES 是可以原创 2012-06-18 16:08:03 · 2494 阅读 · 0 评论 -
物理引擎chipmunk
Chipmunk是一个支持iPhone平台游戏开发的2D物理引擎,提供2D physic和rigid body特性。Chipmunk特性是灵活和易用。下面是关于Chipmunk的简介和一个简单的教程IntroductionSetupBasic ConceptsInitializing ChipmunkDefining the ball's bod原创 2012-05-27 15:47:11 · 4598 阅读 · 0 评论 -
基于cocos2d-x引擎的游戏框架设计
移动互联网浪潮正在彻底改变人们日常的生活习惯和生活方式。相应的,基于移动终端和感应交互的游戏,也为人们带来了全新的游戏体验。本文,我们将结合目前流行的cocos2d-x引擎,使用C++语言,基于iOS平台,和大家分享iPhone、iPad上游戏客户端的构架与实现。游戏架构与实现目前,很多基于cocos2d-x的代码基本上仅是对引擎功能的使用,完全不能按照游戏项目的标准来参考。作为游原创 2012-03-09 17:29:51 · 1783 阅读 · 0 评论 -
iOS中后台运行
iOS在升级到4.0以后就支持了多任务了。下文将详细介绍一下这个特性。1、检查设备是否支持多任务Apple出于性能的考虑,并不是所有的iOS设备升级到iOS4以后都支持多任务,比如iPhone 3G。如果你的应用在没有多任务特性时会出问题,为了保持应用的健壮性,你应该对此进行判断并处理。你可以通过调用UIDevice对象的multitaskingSupported属性来获取当前原创 2012-12-18 22:51:38 · 2324 阅读 · 0 评论 -
iPhone5和4的屏幕兼容
iphone5出来了,屏幕没有等比例扩大,直接拉长了,以前的应用在iphone5上直接就是上下两条黑,刚做好ipad开发,最近又要做iphone开发,就在做项目之前把屏幕兼容问题解决了一下。大概可以分为三步:1、建立xib视图界面时,把view的size都设为Retain 4 Full Screen并把auto layout勾上2、把界面分为三个部分,即在s原创 2012-12-17 22:49:18 · 2336 阅读 · 2 评论 -
线程 NSCondition NSThread
多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。一、线程创建与启动线程创建主要有三种方式:- (id)init; // designated initializer-原创 2012-03-20 22:46:20 · 3159 阅读 · 3 评论 -
How to avoid memory leaks in iPhone applications
IntroductionThis article lists some tips to avoid memory leaks in your iPhone apps.OwnershipOwnership is the overall idea behind how memory management should work on the iPhone. When an object h原创 2012-11-10 22:32:36 · 1161 阅读 · 0 评论 -
关于 self与内存相关的用法总结
今天新同事问了一些关于什么时候用全局变量,什么时候用self.赋值的问题,所以笔者在此说明一下。何时使用self.在网上搜索或者论坛里的回复大多都是简简单单的说这与objc的存取方法有关,如何与存取方式有关究竟他们之间的是什么样的关系就很少有同学回答了。下面以代码来说明问题:创建一个Student类,继承NSObject类,代码: 01#import原创 2012-11-29 18:21:34 · 1459 阅读 · 0 评论 -
iOS之线程间通信
Cocoa为iOS线程间通信提供2种方式,1种是performSelector,另1种是Port。 先说第1种,performSelector,有以下几种: 第2种为NSMachPort方式。NSPort有3个子类,NSSocketPort、NSMessagePort、NSMachPort,但在iOS下只有NSMachPort可用。 使用的方原创 2012-11-17 16:31:59 · 6046 阅读 · 0 评论