gpt4 book ai didi

objective-c - 这种编码风格有什么好处?

转载 作者:行者123 更新时间:2023-12-01 17:19:58 25 4
gpt4 key购买 nike

最近,我遇到了这种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...

我要说的是方法顶部的声明。那个有什么用途?这是好习惯吗?似乎可以使代码更加清晰,因为您可以立即看到该方法将使用哪些变量,对吗?

最佳答案

一方面,当您立即看到该方法将使用哪些变量时,它增加了清晰度。它是C的遗留物,您必须在方括号块的顶部声明所有变量,因为在该块的中间不允许进行任何声明。

另一方面,有人可能会争辩说,变量声明有时离第一次使用它们的地方很远,因此它无助于理解变量的用途。我认为这只是一个品味问题。

关于objective-c - 这种编码风格有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6227640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com