Posts tagged: ios

iOS5的自定义容器控制器特性简单使用

iOS5支持开发自定义的容器控制器。比如下面这样: 在本示例中,屏幕的上半部分是嵌套在根控制器中的导航控制器(UINavigationController)。即:    发送文章为PDF   

星期四 一月 12th, 2012 in , , , | No Comments »

又一个iOS屏幕切换的示例

在iOS屏幕变换的处理,已经提到了通过通知来处理屏幕视图的自动翻转。 这里再写一个。 蓝色的子视图,在翻转的情况下触发界面大小的调整。    发送文章为PDF   

星期三 一月 11th, 2012 in , , , | No Comments »

使用NSCondition实现生产者消费者问题

使用NSCondition,类似Java中的wait,notify机制,可以实现多线程的同步,即,可实现生产者消费者问题。 基本思路是,首先要创建公用的NSCondition实例。然后: 消费者取得锁,取产品,如果没有,则wait,这时会释放锁,直到有线程唤醒它去消费产品; 生产者制造产品,首先也是要取得锁,然后生产,再发signal,语义等同Java的notify,这样可唤醒wait的消费者。 示例代码如下:    发送文章为PDF   

星期日 一月 8th, 2012 in , , , , , | No Comments »

使用runloop阻塞线程的正确写法

runloop可以阻塞线程,等待其他线程执行后再执行。 比如: @implementation ViewController{     BOOL end; } … – (void)viewDidLoad {     [super viewDidLoad];      NSLog(@”start new thread …”);     [NSThread detachNewThreadSelector:@selector(runOnNewThread) toTarget:self withObject:nil];         while (!end) {         NSLog(@”runloop…”);         [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];         NSLog(@”runloop end.”); [...]

星期日 一月 8th, 2012 in , , , , , | No Comments »

使用ARC编写简单的Xcode项目

使用ARC编写全新的项目是很容易的。下面用一个简单的项目来说明使用方法。 先看写好后的样子:      代码很简单。有两个视图,左边视图提交切换到右边视图,右边视图点返回回到左边视图。 首先是创建项目,使用创建项目向导,这里创建一个单视图应用(Single View Application)。 日志引用iOS中的设计模式:target-action    发送文章为PDF   

星期四 一月 5th, 2012 in , , , , , , | No Comments »

ObjC属性使用的一个最佳实践

  比如,一般情况下,头文件里是这样写: 在m文件中:    发送文章为PDF   

星期三 一月 4th, 2012 in , , , , | 1 Comment »

ObjC在case语句中声明变量的写法

如果你这样写,肯定会编译时报错的: 有人选择把变量声明放在switch语句之前,这样可能会造成混乱,变量的声明超出了自己的作用域。 其实很简单,给case加花括号即可:    发送文章为PDF   

星期三 一月 4th, 2012 in , , , , | No Comments »

ObjC使用类扩展实现私有方法

在ObjC里,没有java的private关键字,因此方法是公有的,其他对象都可以调用。 看代码: @interface Person : NSObject -(void) aPrivateMethod; @end 一般来说,方法的声明都是在h文件中写的,这样的缺点是其他代码也可以使用该方法。有些方法其实只是给类内部使用的,暴露在外面可能会带来很多问题。    发送文章为PDF   

星期三 一月 4th, 2012 in , , , , | No Comments »

@autoreleasepool在ARC和MRC下的区别

MRC这个词应该是我编的,ARC,Automatic Reference Counting,手工引用计数就应该是:Manual Reference Counting,那就应该是MRC喽,不过没有见人这样用过。 ARC引入了新的语句管理自动释放池语法: @autoreleasepool {      // Code, such as a loop that creates a large number of temporary objects. } 测试了一下,在ARC情况下和MRC情况下对象的释放有不同。    发送文章为PDF   

星期一 一月 2nd, 2012 in , , , , , , | No Comments »

搭建iOS的Web开发环境

现在,越来越多的iOS项目需要用到Web开发技术,尤其是HTML5方面的。 如果是开发标准界面的Web开发,可以使用Dashcode,我打算另写一篇文章介绍。这里的开发环境,是针对自定义界面的,从应用范围来看,也更广泛一些。 开发环境 首先是开发环境,因为比较熟悉Eclipse,使用的是Eclipse插件WTP来开发Html、Css和Javascript。我直接安装的是SpringSource Tool Suite(是Spring定制的Eclipse版本,带wtp插件),因为后续还要使用Grails开发服务器端的动态内容。

星期三 十一月 2nd, 2011 in , , , | 1 Comment »