2009-06-30 6 views
0

私はCocoaでスレッドを使用する方法を知りたがっています。私はこれを初めて知ったので、私はよくその文書を理解していません。NSThreadsをCocoaで使用していますか?

コードの上半分はタイミング用で、下半分は日付用です。誰も私にどのように1つのスレッドを使用する方法と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; 
+0

正しく答えるのは難しい質問です。メインスレッド以外のスレッドからNSDateFormatterを使用しないでください。別の例で言い換えるとよいでしょう。 –

+0

NSDateFormatterを別のスレッドで使用できないのはなぜですか?私はそれを指示する文書に何も表示されません。 –

答えて

3

スレッドは実装が非常に簡単です。学習する分、マスターする生涯、彼らは言う。

これはあなたが始める必要があります。

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

を(だけでなくiPhone OSに適用されます)

+0

これは本当に優れた文書です。私はNSOperationとNSOperationQueueの組み合わせが素晴らしいリソースであることを発見しました。 –

+0

彼らはとても優れている理由の一つを忘れています。新しい自動解放プールの作成について心配する必要はありません。 –

+0

私たちは、ココアの世界で、収集して理解するのにかなり時間がかかる情報の収集と共有を気にしない、数多くの素晴らしい開発者を持つことは非常に幸運です。 –

1

迅速なものについては、それを行うための最も簡単な方法は、その後、別のメソッドにコードを入れています電話:

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

メモリリークを防ぐには、メソッドにNSAutoreleasePoolを配置する必要があります。

また、他の人によると、日付の書式設定は実際に別のスレッドで行うべきことではありません。

関連する問題