【发布时间】:2014-03-13 11:16:58
【问题描述】:
为了清理我的代码,将#define 用于多行代码是否是一种好习惯?大多数示例是几行,定义尺寸等。
在我的示例中,我有以下代码的单独头文件。以这种方式使用#define 是一种好习惯吗?
#define KCHECKREFERENCE if([self.partClasses containsObject:@"Part1"]||[self.partClasses containsObject:@"Part2"]||[self.partClasses containsObject:@"Part3"]||[self.partClasses containsObject:@"Part4"]||[self.partClasses containsObject:@"Part5"]||[self.partClasses containsObject:@"Part6"]||[self.partClasses containsObject:@"ICDomesticEICPart7"]||[self.partClasses containsObject:@"ICDomesticEICPart8"] ){\
[self.currentPartView save];\
self.previousPartView = self.currentPartView;\
int nextPartNumber = 1;\
ICCertificateComponent *part = [self loadPart:nextPartNumber];\
self.currentPartView = part;\
CGRect nextPartViewFrame = self.currentPartView.view.frame;\
nextPartViewFrame.origin.x = 320.0f;\
self.currentPartView.view.frame = nextPartViewFrame;\
CGRect previousPartViewFrame = self.previousPartView.view.frame;\
previousPartViewFrame.origin.x = -320.0f;\
nextPartViewFrame.origin.x = 0;\
[self.view insertSubview:self.currentPartView.view belowSubview:self.navBarView];\
NSTimeInterval duration = 0.1;\
[UIView animateWithDuration:duration\
animations:^{\
self.previousPartView.view.frame = previousPartViewFrame;\
self.currentPartView.view.frame = nextPartViewFrame;\
}\
completion:^(BOOL finished) {\
self.currentPartNumber = 1;\
self.navBarView.prevButton.enabled = NO;\
self.navBarView.nextButton.enabled = YES;\
[self.previousPartView.view removeFromSuperview];\
self.previousPartView = nil;\
if (self.currentPartView.showsShareOptions == YES) {\
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Share" style:UIBarButtonItemStyleBordered target:self action:@selector(shareButtonPressed:)];\
}\
}\
];\
【问题讨论】:
-
在清理代码方面寻求帮助的最佳地点是 CodeReview。 codereview.stackexchange.com/questions
标签: ios objective-c macros