It is just a category. The syntax exist in ObjC 1.0 as well. "private" is the name of the category meaning "It is for private use only". This isn't a keyword.
Defining this category means instances of DITableViewController can be sent the message -applicationDocumentsDirectory
as well, without modifying the class DITableViewController itself.
In ObjC 2.0, it may be better to use a class extension for category intended for private use.
@interface DITableViewController ()
- (NSString *)applicationDocumentsDirectory;
@end
(The linked answer provides much more detail.)