不知道大家有没有遇到过这样的问题,代码是这样:
- (NSArray*) getDetailValues : (NSArray*) detailsArr{ NSLog(@"arrs = %@", detailsArr); NSMutableArray *muteArr = @[].mutableCopy; for(NSDictionary *item in detailsArr){ NSLog(@"item = %@", item); [muteArr addObject:[ExamDetailValue buildDetailValue : item]]; } return muteArr; }
传参是一个NSArray,单步调试运行到第7行for循环之前detailsArr还正常,进入for循环之后detailsArr中的全部值都变为
空了。实在不理解为什么会这样,大家遇到过吗?
运行到第七行时,detailsArr的值
运行到第八行时,detailsArr的值
解决方案
8
会不会是原因是@[]这个语法糖创建的是NSArray,并不是NSMutableArray
你就老实点,用
NSMutableArray *muteArr = [[NSMutableArray alloc] init];
试试
你就老实点,用
NSMutableArray *muteArr = [[NSMutableArray alloc] init];
试试
8
NSMutableArray *muteArr = @[].mutableCopy; 这本人作啊。
2
NSDictionary *item指向ExamDetailValue类型,能否这个原因导致,另外你打印下吧,不要看xcode的显示信息,有时候xcode会欺骗我们的
2
Xcode问题吧,试了几次都没有你的问题