Objective-c

iphone中如何进行多线程编程

2010-04-26, Nortan Posted in Objective-c, 软件开发 | 10 回复 | 查看全文>>

多线程编程
多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。

一、线程创建与启动
线程创建主要有二种方式:

- (id)init;	// designated initializer
- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument;

当然,还有一种比较特殊,就是使用所谓的convenient method,这个方法可以直接生成一个线程并启动它,而且无需为线程的清理负责。这个方法的接口是: 查看全文…

标签: , ,

sqlite3中针对objective-c的持久层框架

2010-04-19, Nortan Posted in Objective-c, 软件开发 | 3 回复 | 查看全文>>

Cocoa与Cocoa Touch(主要是指iphone,ipad,ipod等等)都对sqlite3提供了良好的支持,但objective-c语言中的sqlite3持久层框架确没有java中那样丰富与强大、灵活,直到我发现sqlitepersistentobjects这个框架。这个框架利用反射机制与value objects的完美结合,对sqlite3进行了非常轻量级的对象封装(这点有点像我2007年时写的一个java持久层框架,过些时候我整理一下,开源出来),使用者在编程过程中,基本不用再写sql语句,也不需要再手工生成sqlite3数据库文件。你所关心的,就是值对象继承一个核心类,然后添加值对像的属性,实际他就是一款Objective-C实现的ActiveRecord–Rails社区红透半边天的ORM模式。 查看全文…

标签: , , , ,

国际化Iphone的应用程序名称

2010-04-06, Nortan Posted in Objective-c | 7 回复 | 查看全文>>

iphone应用程序名的国际化

在前面的文章,有一文章叫做《iPhone 中使用NSLocalizedString实现国际化》,它主要介绍了在应用程序中,字符等信息的国际化(本地化),很多情况下,我们希望应用程序的名称也能够做到国际化,让不同国家的人一看程序名,基本就能了解到本程序的用途,比如,方都化工网出品的化工贸易行情软件i16ds,如果看英文名,我们是没有办法了解它的用途的,除非对方都化工网非常熟悉。

iPhone应用程序名的国际化,实际还是比较简单的,笔者这里有一种比较简单、快速且不影响原有程序(不需要修改任何原代码)的方法。 查看全文…

标签: , , ,

使用NSTimer与UIView的动画,实现飘雪效果

2010-03-22, Nortan Posted in Objective-c | 2 回复 | 查看全文>>

使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,看到使用path的方式实现的一个云漂来漂去的效果,实际也可以用那种方式实现,这实际就是前面说的动画效果的两种应用)。所以,我们可以在viewDidLoad事件中,增加一个图片及定时器并启动,这里的pic请在头文件中定义。

-(void)viewDidLoad{
 [super viewDidLoad];
 self.pic = [UIImage imageNamed:@"snow.png"];//初始化图片
 //启动定时器,实现飘雪效果
 [NSTimer scheduledTimerWithTimeInterval:(0.2) target:self selector:@selector(ontime) userInfo:nil repeats:YES];
}

然后再实现定时器定时调用的ontime方法: 查看全文…

标签: , ,

Iphone中的网络请求

2010-03-16, Nortan Posted in Objective-c | 我来说两句 | 查看全文>>

一、简单的get请求

网络编程是我们经常遇到的,在IPhone中,SDK提供了良好的接口,主要使用的类有NSURL,NSMutableURLRequest,NSURLConnection等等。一般情况下建议使用异步接收数据的方式来请求网络连接,这种网络连接分为两步,第一步是新建NSURLConnection对象后,直接调用它的start方法来连接网络。第二步是使用delegate方式来接收数据,这里给一个常用的写法: 查看全文…

标签: ,