ARC环境下内存问题

NSMutableArray * array  = [NSMutableArray arrayWithArray:@[@"2",@"2",@"1",@"fad",@"23"]];
for(NSString* str  in array)
{
  if (str isEqualToString:@"fad"]) {
    [array removeObject:str];
  }
}

编译运行时出现崩溃:

Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x100103560> was mutated while being enumerated.'

NSMutableArray * array  = [NSMutableArray arrayWithArray:@[@"2",@"2",@"1",@"fad",@"23"]];
[array enumerateObjectsUsingBlock:^(NSString*  obj, NSUInteger idx, BOOL *  stop) {
           if ([obj isEqualToString:@"fad"]) {
               [array removeObject:obj];
           }
       }];   
NSMutableArray * arrayNum  = [NSMutableArray arrayWithArray:@[@(2),@(21),@(1),@(100),@(23)]];
[arrayNum enumerateObjectsUsingBlock:^(NSNumber *  obj, NSUInteger idx, BOOL *  stop) {
           if ([obj isEqualToString:@(2)]) {
               [arrayNum removeObject:obj];
           }
       }];   


   转载规则


《ARC环境下内存问题》 志鹏 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Mac上 Appache 的操作 Mac上 Appache 的操作
常用操作: 打开终端,运行启动Apache命令:`sudo apachectl start 2. 关闭命令: sudo apachectl stop 3. 重启命令 sudo apachectl restart 4. 查看Apache版本
2016-09-02 志鹏
下一篇 
Block学习 Block学习
Blocks概要什么是BlocksBlocks是C语言的扩充功能。有一句话来表示Blocks的扩充功能:带有自动变量(局部变量)值的匿名函数。 “匿名函数”:不带名称的函数 C语言中函数的声明与使用int function(int
2016-08-28 志鹏
  目录