Iphone 消除foreach循环中的switch语句
我对在一个UIView中使用“.tags”查找子视图有疑问Iphone 消除foreach循环中的switch语句,iphone,objective-c,anti-patterns,Iphone,Objective C,Anti Patterns,我对在一个UIView中使用“.tags”查找子视图有疑问 for (UIView *viewObj in [self.view subviews]) { // want to find viewObject by its tag. // but I heard for-switch or for-case paradigm are bad pattern design by WTF. // there are total 9 of tags will be use for f
for (UIView *viewObj in [self.view subviews])
{
// want to find viewObject by its tag.
// but I heard for-switch or for-case paradigm are bad pattern design by WTF.
// there are total 9 of tags will be use for finding view object
switch (viewObj.tag)
{
case 0:
.
..
...
}
}
如何使其成为非开关或非if语句?我应该只添加到一个数组中,然后从那里获取吗?例如,添加带有所需标记的视图,并从此数组中提取
谢谢。从您的评论来看,这是一组非常有限的项目——9项。如果这是静态的,switch语句就没有什么真正的错误。也许您可以在功能上将每个开关分解为一个单独的方法。也就是说,除了你的数组思想之外,命令模式可能是一种需要考虑的方法。仅供参考:根据您的评论,这是一组非常有限的项目-9项。如果这是静态的,switch语句就没有什么真正的错误。也许您可以在功能上将每个开关分解为一个单独的方法。也就是说,除了你的数组思想之外,命令模式可能是一种需要考虑的方法。参考:您可以做的一件事是,通过使每个视图符合相同的协议,使
子视图中的UIView
具有相同的类型。然后,您可以将每个方法强制转换为id
,并在每个UIView
中调用相同的方法 您可以做的一件事是使子视图中的UIView
s符合相同的协议,从而使它们具有相同的类型。然后,您可以将每个方法强制转换为id
,并在每个UIView
中调用相同的方法 为了进一步说明Shan的答案,如果您可以将它们分解为函数并将它们(函数指针)放入数组中,那么您可以将其简化一点,或者您可以使用新的语言功能。为了进一步说明Shan的答案,如果您可以将它们分解为函数并将它们(函数指针)放入数组中,然后,您可以将其简化一点,或者可以使用新的语言功能。如果只是固定数量的视图,并且每个视图都有需要执行的不同方法,您可以直接访问这些视图
UIView* someView = [self.view viewWithTag:0];
//Operations on view 0
UIView* someOtherView = [self.view viewWithTag:1];
//Operations on view 1
//...
如果只是固定数量的视图,并且每个视图都有需要执行的不同方法,则可以直接访问这些视图
UIView* someView = [self.view viewWithTag:0];
//Operations on view 0
UIView* someOtherView = [self.view viewWithTag:1];
//Operations on view 1
//...
有一个新的IBOutlet类型,IBOutletCollection。您将其用于NSArray,然后在IB中您可以将视图添加到该出口-在运行时,它们将全部放入数组(无序)
要获取所需的特定条目,在viewDidLoad中,您可以将所有NSArray条目映射到由标记值键入的字典中,然后只需使用“objectForKey”将其取出。有一种新的IBOutlet类型,即IBOutletCollection。您将其用于NSArray,然后在IB中您可以将视图添加到该出口-在运行时,它们将全部放入数组(无序)
要获取所需的特定条目,可以在viewDidLoad中将所有NSArray条目映射到由标记值键入的字典中,然后只需使用“objectForKey”把他们弄出来。你完全正确,感谢设计模式的修改。考虑到环境,我会选择做最务实的事情。你完全正确,感谢设计模式的修改。考虑到环境,我会选择做最务实的事情