2011-01-30 5 views

答えて

6

:-)事前に

おかげでそれはちょうどcategoryです。構文はObjC 1.0にも存在します。 「プライベート」は、「私的使用のみ」を意味するカテゴリの名前です。これはキーワードではありません。

このカテゴリを定義すると、DITableViewControllerクラス自体を変更せずに、DITableViewControllerのインスタンスにメッセージ-applicationDocumentsDirectoryも送信できます。

ObjC 2.0では、プライベートな使用を目的としたカテゴリにクラス拡張を使用する方がよい場合があります。

@interface DITableViewController() 
- (NSString *)applicationDocumentsDirectory; 
@end 

(リンク答えははるかに詳細を提供します。)

+0

1クラスの拡張(別名匿名カテゴリ)を言及ため。 – BoltClock

0

構文(category)は、サブクラス化の代替として使用されています。 NSStringのような標準クラスでも、メソッドをクラスに追加する手段を提供します。

http://macdevelopertips.com/objective-c/objective-c-categories.html

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCategories.html%23//apple_ref/doc/uid/TP30001163-CH20-SW1

+0

あなたは拡張しているクラスについて言及していますが、それが起こるかどうかに関わらず、既存のメソッドをカテゴリメソッドで置き換えることはできません。 – Richard

関連する問題