在Cocoa中使用NSThreads?

时间:2009-06-30 23:24:35

标签: iphone cocoa multithreading

我想知道如何在Cocoa中使用线程。我是新手,所以我不太了解文档。

代码的上半部分用于计时,下半部分用于日期。任何人都可以告诉我如何使用单个线程以及如何使用2个线程来处理这两个操作。

NSDateFormatter *timeFormatter = [[[NSDateFormatter alloc] init] autorelease];
[timeFormatter setDateStyle:NSDateFormatterNoStyle];
[timeFormatter setTimeStyle:NSDateFormatterMediumStyle];
NSDate *stringTime = [NSDate date];
NSString *formattedDateStringTime = [timeFormatter stringFromDate:stringTime];
time.text = formattedDateStringTime;

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
NSDate *stringDate = [NSDate date];
NSString *formattedDateStringDate = [dateFormatter stringFromDate:stringDate];
date.text = formattedDateStringDate;

2 个答案:

答案 0 :(得分:3)

线程很容易实现。他们说,需要一分钟学习,掌握一生。

这应该让你开始:

http://cocoasamurai.blogspot.com/2008/04/guide-to-threading-on-leopard.html

(也适用于iPhone OS)

答案 1 :(得分:1)

对于快速的东西,最简单的方法是将代码放入单独的方法中,然后调用:

[self performSelectorInBackground:@selector(formatTime) withObject:nil];
[self performSelectorInBackground:@selector(formatDate) withObject:nil];

您可能需要在方法中放置一个NSAutoreleasePool来阻止内存泄漏。

另外,正如其他人所说,日期格式化并不是你应该在一个单独的线程中做的事情。