最近我碰到這個Objective-C的編碼風格:這種編碼風格有什麼好處?
- (NSFetchedResultsController *)fetchedResultsController
{
NSFetchRequest *fetchRequest;
NSEntityDescription *entity;
NSSortDescriptor *sortDescriptor;
NSArray *sortDescriptors;
NSError *error;
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
entity = [NSEntityDescription entityForName:@"Deck" inManagedObjectContext:self.managedObjectContext];
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
[fetchRequest setSortDescriptors:sortDescriptors];
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
_fetchedResultsController.delegate = self;
error = nil;
if (![self.fetchedResultsController performFetch:&error]) {
DLog(@"Failed fetching decks: %@, %@", [error localizedDescription], [error userInfo]);
}
// etc...
我說的事情是在方法的頂部聲明。那個有什麼用途?這是不錯的做法嗎?它似乎增加了代碼的一些清晰度,因爲您可以即時查看該方法將使用哪些變量,對嗎?
解析器不再強制使用此語法,但_i_喜歡它,它很好地閱讀 – bshirley 2011-06-03 15:19:11