diff --git a/doric-iOS/Pod/Classes/Shader/DoricSuperNode.m b/doric-iOS/Pod/Classes/Shader/DoricSuperNode.m index 49929f3b..c14520b9 100644 --- a/doric-iOS/Pod/Classes/Shader/DoricSuperNode.m +++ b/doric-iOS/Pod/Classes/Shader/DoricSuperNode.m @@ -76,7 +76,8 @@ - (void)recursiveMixin:(NSDictionary *)srcModel to:(NSMutableDictionary *)target if (subviews) { for (NSDictionary *subview in subviews) { NSString *viewId = subview[@"id"]; - [targetOri enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL *stop) { + NSMutableArray *mutableTargetOri = [targetProp[@"subviews"] mutableCopy]; + [mutableTargetOri enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL *stop) { if ([viewId isEqualToString:obj[@"id"]]) { NSMutableDictionary *mutableDictionary = [obj mutableCopy]; [self recursiveMixin:subview to:mutableDictionary]; @@ -131,17 +132,17 @@ - (DoricViewNode *)subNodeWithViewId:(NSString *)viewId { - (NSArray *)getSubNodeViewIds { NSMutableArray *discardedItems = [NSMutableArray array]; - - NSMutableArray *allKeys = [[NSMutableArray alloc]init]; + + NSMutableArray *allKeys = [[NSMutableArray alloc] init]; allKeys = [NSMutableArray arrayWithArray:[self.subNodes allKeys]]; for (NSString *key in allKeys) { if ([self subNodeWithViewId:key] == nil) { [discardedItems addObject:key]; } } - + [allKeys removeObjectsInArray:discardedItems]; - + return allKeys; } @end