嵌套方法调用或使用一次性变量时的最佳做法是什么?
你永远不会使用一次性变量吗?
示例:
[persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType
configuration:nil
URL:[NSURL fileURLWithPath: [applicationSupportDirectory stringByAppendingPathComponent: @"storedata"]]
options:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption]
error:&error];
你是否应该总是将嵌套方法分解为一次性变量?
示例:
NSNumber *yesNumber = [NSNumber numberWithBool:YES];
NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:yesNumber
forKey:NSMigratePersistentStoresAutomaticallyOption];
NSString *urlPath = [applicationSupportDirectory stringByAppendingPathComponent:@"storedata"];
NSURL *url = [NSURL fileURLWithPath: urlPath];
[persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType
configuration:nil
URL:url
options:optionsDict
error:&error];
或者你应该使用两者的某种组合吗?
示例:
NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
forKey:NSMigratePersistentStoresAutomaticallyOption];
NSURL *url = [NSURL fileURLWithPath: [applicationSupportDirectory stringByAppendingPathComponent:@"storedata"]];
[persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType
configuration:nil
URL:url
options:optionsDict
error:&error];
我倾向于选择两者的结合,但我想听听其他人对此的看法。如果上面不清楚,这些“一次性变量”的创建只是为了打破嵌套方法,不会在任何地方使用。
答案 0 :(得分:1)
如果一次性变量使您的代码更具可读性,请使用它们。 AFAIK通常没有理由这么重要。
答案 1 :(得分:1)
我个人认为你应该使用“一次性”变量,因为它doesn't come with any overhead(在“发布”模式下,即优化),它使调试更容易。除非你有特殊理由不这样做。
答案 2 :(得分:1)
我的投票是为了最容易阅读的内容。
当我在SO上提供代码示例时,我使用一次性变量(OSV),因为它更容易以某种方式向某人解释。但我不会在我自己的代码中使用它们。
如果我的代码中有一部分需要代码注释,那么我认为这是重构为方法的一个很好的候选者。与变量相同。如果我需要考虑参数代表什么,我可能会将其作为OSV,但对于明显的参数,例如nil
或myView.subView
,如果我为它们创建单独的变量,我发现它更难阅读
回答这个问题:我像你一样使用混合物,但我尽量不要过于担心这些事情。编码样式应该是指导,而不是我们背后的棒 - 只要代码可读且一致。