Rit*_*its 1 macos cocoa-touch coding-style objective-c ios
最近我遇到了这种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...
Run Code Online (Sandbox Code Playgroud)
我正在谈论的是方法顶部的声明.那个有什么用途?这是好习惯吗?它似乎为代码添加了一些清晰度,因为您可以立即看到该方法将使用哪些变量,对吧?
一方面,当您立即看到该方法将使用哪些变量时,它会增加清晰度.它是来自C的遗产,您必须在括号块的顶部声明所有变量,因为在块的中间不允许声明.
另一方面,有人可能会争辩说变量声明有时候远离它们第一次使用的地方,所以它无助于理解变量的用途.我认为这只是品味问题.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |